Azure CLI 和 PowerShell 7.3 输出编码问题

问题描述 投票:0回答:1

Windows 终端内的 PowerShell 7.3 中运行了两个不同的命令。

  1. 只需运行

    az devops user show
    命令即可。

    az devops user show --user $UserPrincipalName -o json
    

  2. 使用

    $(...)
    运行相同的命令。

    $(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 azure-devops azure-powershell azure-cli powershell-7.3
1个回答
0
投票

我在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。然后它会自动运行配置文件中的命令来帮助您修改输出。

© www.soinside.com 2019 - 2024. All rights reserved.