修改 cmd 控制台默认代码页编码的几种方法【GBK、UTF-8】

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

第一种:临时性修改编码

使用 chcp 命令,例如 chcp 65001 ,这回将当前代码页变为 utf-8编码,不过这种方式在关闭 cmd 之后会自动失效。

常用的编码及对应的码值(10进制):

十进制码值对应编码名称
950繁体中文
65001UTF-8代码页
936简体中文默认的GBK
437MS-DOS 美国英语

第二种:永久性修改

永久性修改就是通过修改注册注册表达到。

打开注册表方法:略

定位到:HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe

PS:近期看到下面评论反应很多人在这里找不到 cmd 的选项,由于最近换了新电脑,新安装的 window 10 1903 专业版确实默认找不到(旧版升级过来的可能还保留有),考虑到自己手动添加也比较麻烦,建议大家直接转投 powershell 吧,毕竟 powshell 更强大,也是微软主推的未来的趋势(未来 cmd 就会被 powshell替代掉),而且 powshell 也借鉴了一些 Linux bash 的使用习惯,而且 powshell 是跨平台的哟,你也可以在 Linux 下安装使用,替代 Linux 默认的 bash 。更多详情参考:powshell 官方文档

对于没有 CodePage 的,可以鼠标右键-> 新建 -> DWORD(32位)值,创建即可。

 

 之后通过 “shift + 鼠标右键”  打开的 powershell 默认代码页就是65001UTF-8

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

顺便补充一篇跟本文有关系的另一篇博文:将 Windows10 中的 bash 添加至右键菜单

此外微软新版的 window terminal 也已在 window 商店上架,新版对字体支持更加友好,更多特性可以参考:https://github.com/microsoft/terminal


版权声明:本文为gulang03原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。