如何修复NuGet包管理器控制台的代码页编码问题?
NuGet包管理器控制台编码乱码解决方案
在俄文区域设置的Windows 10环境下,Visual Studio 2019/2022的NuGet包管理器控制台执行dotnet命令时,会使用ANSI代码页(如windows-1251)输出内容,导致乱码。以下是无需开启系统UTF-8实验性功能的解决方法:
方法1:临时修改编码(单次生效)
每次打开NuGet控制台后,先执行以下命令切换到UTF-8编码:
[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8 [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8
之后再执行dotnet命令,输出即可正常显示。
方法2:永久设置NuGet控制台编码
通过PowerShell配置文件实现自动切换编码:
- 在NuGet控制台执行以下命令,获取用户配置文件路径:
$PROFILE
- 打开(不存在则创建)该路径对应的文件,添加以下内容:
if ($Host.Name -eq 'Package Manager Host') { [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8 [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8 }
- 保存文件后重启Visual Studio,NuGet控制台会自动应用UTF-8编码。
方法3:针对外部控制台的设置
若NuGet控制台使用外部窗口:
- 打开Visual Studio,依次进入 工具 > 选项 > 环境 > 控制台
- 选择“外部控制台”,点击“编辑”按钮
- 在弹出的控制台窗口中,右键标题栏 → 属性 → 选项
- 在“当前代码页”下拉菜单中选择「UTF-8 (65001)」,确认保存
- 重启Visual Studio生效
内容的提问来源于stack exchange,提问作者Alex Dragokas
相关产品推荐
相关产品推荐

