【问题标题】:Powershell Terminal encoding in VSCodeVSCode 中的 Powershell 终端编码
【发布时间】:2018-12-19 10:06:52
【问题描述】:

我正在为 Powershell 脚本使用 VSCode 编辑器。而且我有路径问题,其中包含西里尔字符。例如代码:

$users = 'C:\Users\Тестовый пользователь\Documents\userlist.csv'
foreach ($user in $users) {
    $u = Get-Content -LiteralPath $users
    Write-Host "Пользователь:" $u
}

返回错误:

找不到路径“C:\Users\Ниармедк\Documents\userlist.csv”' 因为它不存在。

【问题讨论】:

  • 首先,不要使用 vscode 终端,它很烂。其次,选择俄语作为非 unicode 系统语言环境:java.com/en/download/help/locale.xml
  • 问题解决了!我只是将文件重新保存为 utf8bom。
  • Wuy vscode 终端很烂?有什么选择?
  • 我猜你之前把它保存为没有BOM的UTF-8? PowerShell 尝试将其读取为 ASCII。 BOM 会告诉它改用 UTF-8。或者您可以更改 PowerShell 的默认编码。
  • powershell 终端

标签: powershell encoding visual-studio-code


【解决方案1】:

如果您没有使用BOM 指定编码,Powershell 将使用其默认编码(主要是 ASCII)读取文件:Understanding default encoding and Change the same in PowerShell

VS Code 在其默认配置中没有设置bom。为避免在其他 PowerShell 脚本中出现此问题,请添加 these options in your VS Code settings:

{
    "[powershell]": {
        "files.encoding": "utf8bom",
        "files.autoGuessEncoding": true
     },
}

或者,您也可以更改您的 powershell 默认编码 ofc。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多