必须将cmd代码页切换为65001才能正确显示utf-8中文,临时执行chcp 65001,永久通过注册表autorun设为chcp 65001 >nul,并改字体为lucida console或consolas。

在Windows 10命令提示符中运行含中文的脚本、查看日志或执行Git等工具时出现方块、问号或横线,根本原因是CMD当前代码页仍为GBK(936),无法解析UTF-8编码的中文字符,必须将代码页切换为65001才能正确显示和输入。
临时切换:当前窗口立刻生效
这一步操作起来很简单,直接在已打开的CMD窗口中输入命令即可。
输入:chcp 65001 → 按回车执行。
成功后会显示“Active code page: 65001”,此时再运行echo 测试中文或type readme.md就能看到正常汉字。注意:该设置仅对当前CMD窗口有效,关闭后失效。
永久生效:注册表Autorun自动执行
每次手动输chcp太麻烦?用注册表让CMD一启动就自动切到UTF-8。
第一步:按 Win+R 输入 regedit → 回车打开注册表编辑器。
第二步:导航至路径:HKEY_CURRENT_USER\Software\Microsoft\Command Processor。
第三步:右键右侧空白区 → 新建 → 字符串值 → 命名为 Autorun。
第四步:双击Autorun → 在“数值数据”栏输入 chcp 65001 >nul → 点击确定。加 >nul 是为了隐藏启动时那行“Active code page”提示,界面更干净。
字体补救:防止字形缺失导致的伪乱码
即使代码页已是65001,若CMD还在用Raster Fonts这类点阵字体,中文依然显示为空白或方框——因为该字体根本不包含汉字字形。
方法一:右键CMD窗口标题栏 → 属性 → 字体 → 选择 Lucida Console 或 Consolas → 确定。
方法二(更彻底):在属性 → 选项 → 勾选 使用旧版控制台 → 确定 → 关闭CMD → 重新打开 → 再次进入属性取消勾选“使用旧版控制台”。这能强制刷新字体缓存,让Lucida Console真正可用。
【关键提醒】如果属性里找不到Lucida Console,说明你没先执行过chcp 65001,系统不会加载该字体选项。











