Windows 终端内的 PowerShell 7.3 中运行了两个不同的命令。
只需运行
az devops user show
命令即可。
az devops user show --user $UserPrincipalName -o json
使用
$(...)
运行相同的命令。
$(az devops user show --user $UserPrincipalName -o json)
因为我的用户信息包含中文字符。第一个命令就能显示正确的汉字。秒命令将在屏幕上显示乱码文本。
使用相同的命令,如果我在 Windows PowerShell 5.1 中运行,它可以完美显示汉字。为什么?
这两个命令有什么区别?如何在PowerShell 7.3中运行第二条命令时在屏幕上正确显示汉字?
编辑
我尝试在运行第二个命令之前运行它。然后输出就可以正确显示汉字了。
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding('big5')
有什么方法可以使用
az
编码强制 utf8
命令输出吗?
我在Powershell 7.3中使用azure devops cli输出用户包含中文字符时遇到了类似的问题。
问题似乎出自Powershell本身。您可以在此处向开发人员报告问题:https://github.com/PowerShell/PowerShell/issues
有什么方法可以强制使用 utf8 编码来输出 az 命令吗?
是的。您可以使用 Powershell 配置文件。
步骤如下:
Step1:在powershell命令行中运行
notepad $PROFILE
。然后它将打开 powershell 配置文件。如果不存在,它将输出一个窗口来通知您创建新的配置文件。
Step2:在powershell配置文件中添加命令:
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding('big5')
例如:
Step3:保存配置文件并重新启动PowerShell。然后它会自动运行配置文件中的命令来帮助您修改输出。