梅州市护送服务网

Windows批处理文件执行后中文乱码问题的解决方法

2026-04-06 07:56:02 浏览次数:1
详细信息

1. 修改批处理文件编码为ANSI/GBK

这是最简单的方法,适用于中文Windows系统:

chcp 936
echo 中文测试
pause

如何保存为ANSI编码:

2. 修改批处理文件编码为UTF-8带BOM

chcp 65001
echo 中文测试
pause

如何保存为UTF-8 BOM编码:

3. 使用合适的代码页切换

在批处理文件开头添加:

@echo off
chcp 65001 >nul 2>nul
REM 或者使用 chcp 936 用于GBK编码

4. 使用mode con设置控制台属性

@echo off
mode con codepage select=65001
chcp 65001
echo 中文显示正常
pause

5. 修改注册表(永久解决方案)

修改控制台默认代码页:

reg add "HKCU\Console" /v "CodePage" /t REG_DWORD /d 65001 /f

恢复默认:

reg add "HKCU\Console" /v "CodePage" /t REG_DWORD /d 936 /f

6. 使用PowerShell解决

在批处理中调用PowerShell显示中文:

@echo off
powershell -Command "Write-Host '中文内容' -ForegroundColor Green"

或者保存为UTF-8文件后执行:

powershell -Command "Get-Content 'script.bat' -Encoding UTF8 | cmd"

7. 推荐的最佳实践

@echo off
REM 设置代码页为UTF-8
chcp 65001 >nul

REM 设置控制台字体为支持中文的字体
if defined PROCESSOR_ARCHITEW6432 (
    reg add "HKCU\Console" /v "FaceName" /t REG_SZ /d "新宋体" /f
) else (
    reg add "HKCU\Console" /v "FaceName" /t REG_SZ /d "SimSun-ExtB" /f
)

echo 中文显示测试
echo ==============
echo 这是一个中文字符串
pause

8. 注意事项

字体支持:确保控制台字体支持中文(如SimSun-ExtB、NSimSun等) 文件编码一致性:批处理文件编码和控制台代码页要匹配 Windows版本差异

9. 快速检测脚本

创建一个测试脚本:

@echo off
echo 正在测试中文显示...
echo.
echo 当前代码页:%=%
for /f "tokens=2 delims=:" %%i in ('chcp') do set codepage=%%i
echo CodePage: %codepage%
echo.
echo 中文测试:你好,世界!
pause

建议方案:

相关推荐