DOS/BAT

关注公众号 jb51net

关闭
首页 > 脚本专栏 > DOS/BAT > Windows控制台中文乱码

Windows控制台(CMD/PowerShell)中文乱码问题的解决方法

作者:Dontla

当我们在控制台启动一个bat脚本,脚本中有中文,打开一看全是乱码,要永久解决 Windows 控制台(CMD/PowerShell)的中文乱码问题,并统一使用 UTF-8 编码,可以按照以下步骤操作,这些方法适用于 Windows 10/11 系统,需要的朋友可以参考下

问题

在控制台启动一个bat脚本,脚本中有中文,打开一看全是乱码:

解决方法

要永久解决 Windows 控制台(CMD/PowerShell)的中文乱码问题,并统一使用 UTF-8 编码,可以按照以下步骤操作。这些方法适用于 Windows 10/11 系统。

方法一:通过系统区域设置启用 UTF-8 支持(全局生效)(已测试可行,注意有些软件可能不兼容导致乱码,比如MobaXTerm的目录!)

1. 打开系统区域设置:

2. 启用 UTF-8 支持:

3. 重启电脑:

测试结果

怎么重启后cmd还是有部分乱码???

用powershell倒是变好了:

还有一个问题,我的MobaXTerm目录变乱码了,新建目录输入中文还是乱码:

方法二:通过注册表修改 CMD 的默认编码(已测试可行,注意可能导致双击启动.bat脚本闪退问题)

如果不想修改系统区域设置,可以直接通过注册表调整 CMD 的默认编码。

1. 打开注册表编辑器:

2. 修改 CMD 的编码:

3. 设置 CMD 启动时自动切换编码:

测试结果

我双击.bat脚本怎么控制台闪退起不来了。

要先打开cmd,然后再执行脚本才行,现在倒是没有乱码了:

方法三:通过注册表修改 PowerShell 的默认编码(没测试)

1. 创建 PowerShell 配置文件:

打开 PowerShell,执行以下命令创建配置文件(如果不存在):

if (!(Test-Path $PROFILE)) {
    New-Item -Type File -Path $PROFILE -Force
}

打开配置文件进行编辑:

notepad $PROFILE

2. 添加 UTF-8 编码设置:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

3. 允许脚本执行(如果遇到权限问题):

Set-ExecutionPolicy RemoteSigned

方法四:调整终端字体(没测试)

某些字体不支持中文字符渲染,需手动设置支持中文的字体(如 Lucida ConsoleConsolas)。

1. 修改 CMD 字体:

2. 添加缺失字体(可选):

方法五:通过快捷方式设置 CMD/PowerShell 启动参数(没测试)

1. 创建或修改快捷方式:

2. 保存并测试:

注意事项

1. 兼容性问题:

2. 检查当前编码:

3. IDE 内置终端:

通过以上方法,你可以永久解决 Windows 控制台的中文乱码问题,并确保所有终端使用 UTF-8 编码。如果仍有问题,请检查字体设置或尝试更新系统。

以上就是Windows控制台(CMD/PowerShell)中文乱码问题的解决方法的详细内容,更多关于Windows控制台中文乱码的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文