Art*_*nes 29 powershell utf-8 character-encoding
我使用非ascii字符为PowerShell创建了一个UTF8脚本.
characters.ps1:
Write-Host "ç â ã á à"
Run Code Online (Sandbox Code Playgroud)
在PowerShell控制台中运行脚本时,它会输出错误的字符.

但是,如果我直接在控制台中编写字符,它们将按预期显示:

有谁知道是什么原因造成这种行为?
问题来自于我编写的脚本,其中包含非编码路径,包括非ascii字符.当我尝试将路径作为参数传递给cmdlet时(在我将要复制文件夹的情况下)命令失败,因为它无法找到路径(在屏幕中输出错误).
Art*_*nes 71
使用BOM将脚本编码更改为UTF-8解决了该问题.
我使用SublimeText和EncodingHelper插件来控制脚本的字符集.它被正确设置为UTF8.
我将SublimeText中脚本的编码更改为"带BOM的UTF-8",输出显示正确.
我用Notepad ++创建了相同的脚本,默认为"带BOM的UTF-8",并且在控制台中正确显示了字符串.
我将Notepad ++中脚本的编码更改为"没有BOM的UTF-8",并且显示不正确.
似乎PowerShell无法正确猜测没有BOM的UTF-8文件的编码.
小智 6
在我的情况下,问题是由使用Visual Studio Code创建一个新的PowerShell脚本引起的,该脚本的默认编码为UTF-8.将编码设置为"Windows 1252"解决了问题.
看来PowerShell无法处理UTF-8,它需要"Windows 1252"编码.
| 归档时间: |
|
| 查看次数: |
34434 次 |
| 最近记录: |