VS的nuget控制台编码显示问题
有时需要通过Visual Studio的nuget控制台执行一些命令,但发现有时显示文字是乱码的,这个时候该如何处理呢?
备注 以下内容均由AI生成,作者已验证通过
Visual Studio 的 NuGet Package Manager Console 本质上使用 PowerShell 命令环境,官方 NuGet 文档也说明它是 Visual Studio 内置的 PowerShell 控制台。 乱码通常是控制台输出编码仍是 GB2312/系统 ANSI,而命令输出是 UTF-8 或 Unicode。Visual Studio Developer Community 上也有类似反馈,微软回复中提到把控制台输出编码设为 UTF-8 可解决显示问题。
在 NuGet 程序包管理器控制台里先执行:
PowerShell
[Console]::InputEncoding = [System.Text.UTF8Encoding]::new($false)
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)
$OutputEncoding = [Console]::OutputEncoding
验证:
如果有效,做成永久设置。NuGet 支持专用 profile,通常位于:
官方文档说明可在控制台里用 $profile 查看该路径。 执行:
把下面内容写进去:
PowerShell
[Console]::InputEncoding = [System.Text.UTF8Encoding]::new($false)
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)
$OutputEncoding = [Console]::OutputEncoding
保存后重启 VS。PowerShell 官方文档也说明 $OutputEncoding 会影响 PowerShell 与外部程序通信时使用的编码。