win10临时修改、永久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 中文系统默认的

这里添加的目的,是为了以后可以临时手动修改

添加CodePage值.gif

通过修改注册表的这一项后,重新打开一个 cmd 窗口,输入 “chcp”
就能显示当前的活动代码页面了(之前是无法使用 chcp 命令的) chcp执行结果.png

现在,我们可以临时修改 chcp 为 65001 ,也就是 ‘UTf-8’ 的编码显示 chcp临时改为65001.png

当然,也可以改为你需要的活动代码页
重新打开一个 cmd 窗口,又会改为默认的 936 编码
但这只是权宜之计

二、永久修改

① 打开注册表编辑器

计算机\HKEY_CURRENT_USER\Software\Microsoft\Command Processor

② 添加 autorun 字符串值

添加autoru字符串值 现在无论你什么时候运行 cmd 命令行(哪怕是任意程序,调用 cmd 程序运行一些指令)
都会默认使用 UTF-8 的编码显示了

注意!!!!
如果需要显示特殊字体,修改编码后仍然无法正常显示,则需要额外安装命令行字体

总结

  1. 修改第一个注册表后,可以临时修改活动代码页,关闭窗口,或重启系统都会修改前的
  2. 修改第二个注册表后,只要一运行 cmd 会自动修改活动代码页为 65001
  3. 如果影响某些程序运行,可以删除这第二处注册表的值