https://www.jianshu.com/p/40a9fbaf1cac
cmd
前言
有时候,运行一些命令行程序
某些字符无法正常显示,常见的就是方块,或者是火星文字
都是由于 cmd 程序的默认编码格式为 "GBK - 中文简体" 或其他编码格式,导致某些字体不能正常显示
一、临时修改
首先查看当前的活动代码页
打开 cmd 输入chcp
如果是以前从未修改过注册表,可能打开 cmd 后,输入 chcp 会提示如下
'chcp' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
解决方法如下
① 打开注册表编辑器
输入win + r,输入 regedit
计算机\HKEY_CURRENT_USER\Console%SystemRoot%_system32_cmd.exe
② 添加 CodePage (DWORD 32 位) 值
我添加的值 936 是可以显示中文的一种编码格式(GBK - 中文简体)
这也是 windows10 中文系统默认的
这里添加的目的,是为了以后可以临时手动修改
通过修改注册表的这一项后,重新打开一个 cmd 窗口,输入 "chcp"
就能显示当前的活动代码页面了(之前是无法使用 chcp 命令的)
chcp执行结果
现在,我们可以临时修改 chcp 为 65001 ,也就是 ‘UTf-8’ 的编码显示
chcp临时改为65001
当然,也可以改为你需要的活动代码页
重新打开一个 cmd 窗口,又会改为默认的 936 编码
但这只是权宜之计
二、永久修改
① 打开注册表编辑器
计算机\HKEY_CURRENT_USER\Software\Microsoft\Command Processor
② 添加 autorun 字符串值
添加autoru字符串值现在无论你什么时候运行 cmd 命令行(哪怕是任意程序,调用 cmd 程序运行一些指令)
都会默认使用 UTF-8 的编码显示了
注意!!!!
如果需要显示特殊字体,修改编码后仍然无法正常显示,则需要额外安装命令行字体
总结
- 修改第一个注册表后,可以临时修改活动代码页,关闭窗口,或重启系统都会修改前的
- 修改第二个注册表后,只要一运行 cmd 会自动修改活动代码页为 65001(也可自行改为其他编码)
- 如果影响某些程序运行,可以删除这第二处注册表的值