在程序开发中我们统一的编码是 UTF-8,这一点很重要,但是总还是会遇到许多乱码问题,乱码的原因是多方面的,这里暂不过多总结。这里只说明在window下使用控制台执行一些自己编写的程序,或者是进行交互式编程的时候会经常遇到乱码问题,这是因为Window cmd的默认编码是GBK。与程序采用的 UTF-8 不一致造成的中文及特殊字符乱码。
blob.jpg

第一种方式:临时性修改控制台的显示编码

使用 chcp 命令,例如 chcp 65001 ,这回将当前代码页变为 utf-8编码,不过这种方式在关闭 cmd 之后会自动失效。
blob.jpg
常用的编码及对应的码值(十进制):
blob.jpg

第二种方式:永久修改

永久性修改就是通过修改注册注册表达到。
打开注册表方法:win+r -> regedit
定位到:HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
需要注意的是,默认是没有这个键值的。只有在标题栏右键修改过设置才会出现。删除这个项,就会使用console的默认设置。 如果要修改,可以在cmd的标题栏右键设置,随便修改一个属性,然后刷新下注册表就可以了。
blob.jpg

右侧如果没有CodePage,则右键新建一个DWORD值,直接将其修改为65001即可(十进制的65001)

同理也可以修改:powershell 的默认编码。如果因为权限问题无法修改的,可以右键左边选中的红框,选择权限,赋给自己完全控制的权限就可以了!

One Thought to “修改Windows控制台默认代码页编码的几种方法”

  1. […] 修改Windows控制台默认代码页编码的几种方法 2019年7月28日 […]

Leave a Comment