将 Unicode 更改为 UTF-8 | PowerShell脚本
Change Unicode to UTF-8 | PowerShell script
当我在 PowerShell 脚本中使用 Write-Host
时,输出如下所示:?????? ??????.
发生这种情况是因为我使用 Write-Host
输入阿拉伯语字符串,而 PowerShell 似乎不支持阿拉伯语...
如何使用 Write-Host
打印文本,但使用 unicode UTF-8
(支持阿拉伯语)。
示例:Write-Host "مرحباً بالعالم"
这种情况下的输出将是:?????? ??????
有什么解决办法吗?
固定
您需要设置支持这些字符的字体。喜欢Cascadia Code PL
注意:非 PL 版本不起作用,所以获取 PL 版本。
您可能还必须设置控制台编码。除非你真的需要不同的编码,否则默认为 utf8
是个好主意。
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
之前
我实际上并不需要 wt
这里,我会建议它。 windowsterminal 是一个现代术语,现在是 inbox
应用程序。这意味着它在 windows 以后是默认的。
utf8
不适用于 wt
支持的术语(均使用 cascadia code pl
字体
当我在 PowerShell 脚本中使用 Write-Host
时,输出如下所示:?????? ??????.
发生这种情况是因为我使用 Write-Host
输入阿拉伯语字符串,而 PowerShell 似乎不支持阿拉伯语...
如何使用 Write-Host
打印文本,但使用 unicode UTF-8
(支持阿拉伯语)。
示例:Write-Host "مرحباً بالعالم"
这种情况下的输出将是:?????? ??????
有什么解决办法吗?
固定
您需要设置支持这些字符的字体。喜欢Cascadia Code PL
注意:非 PL 版本不起作用,所以获取 PL 版本。
您可能还必须设置控制台编码。除非你真的需要不同的编码,否则默认为 utf8
是个好主意。
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
之前
我实际上并不需要 wt
这里,我会建议它。 windowsterminal 是一个现代术语,现在是 inbox
应用程序。这意味着它在 windows 以后是默认的。
utf8
不适用于 wt
支持的术语(均使用 cascadia code pl
字体