问题背景
执行gcc编译代码,显示的打印信息乱码,如下图
![图片[1] - 【亲测】CMD终端中文乱码终极解决方案! - 正则时光](https://www.regular.cc/wp-content/uploads/2024/01/2022101005282898-1024x444.png)
原因分析
这是因为CMD代码页是英文的,不支持中文。
![图片[2] - 【亲测】CMD终端中文乱码终极解决方案! - 正则时光](https://www.regular.cc/wp-content/uploads/2024/01/2022101005320253.png)
常用的编码及对应的码值(10进制):
十进制码值 | 对应编码名称 |
950 | 繁体中文 |
65001 | UTF-8代码页 |
936 | 简体中文默认的GBK |
437 | MS-DOS 美国英语 |
我们要做的就是修改代码页为65001(UTF-8代码页)
解决办法
一、临时办法
直接在cmd窗口中输入chcp 65001
![图片[3] - 【亲测】CMD终端中文乱码终极解决方案! - 正则时光](https://www.regular.cc/wp-content/uploads/2024/01/2022101005355988.png)
![图片[4] - 【亲测】CMD终端中文乱码终极解决方案! - 正则时光](https://www.regular.cc/wp-content/uploads/2024/01/2022101005363833.png)
二、永久性修改
通过修改注册注册表达到。
1.打开注册表,win+R”或者点击开始菜单,找到运行,在运行输入框里面输入“regedit”;
![图片[5] - 【亲测】CMD终端中文乱码终极解决方案! - 正则时光](https://www.regular.cc/wp-content/uploads/2024/01/202210100539305.png)
2.按照如下步骤修改代码页编码为65001,注意选择十进制!
![图片[6] - 【亲测】CMD终端中文乱码终极解决方案! - 正则时光](https://www.regular.cc/wp-content/uploads/2024/01/2022101005430943.png)
特别说明:如果注册表中没有SystemRoot%_system32_cmd.exe
1、在注册表HKEY_CURRENT_USER\Console下新建SystemRoot%_system32_cmd.exe项
2、新建一个 DWORD(32位值),命名为CodePage,值设为65001
![图片[7] - 【亲测】CMD终端中文乱码终极解决方案! - 正则时光](https://www.regular.cc/wp-content/uploads/2024/01/2022101005490453.png)
效果展示
直接打开cmd终端,默认代码页就是65001了,成功!
![图片[8] - 【亲测】CMD终端中文乱码终极解决方案! - 正则时光](https://www.regular.cc/wp-content/uploads/2024/01/2022101005505517.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END