终端乱码问题解决
最近发现有时候在windows终端 (就是那个黑框框) 运行自己写的C\C++程序时,有时候显示的中文是乱码
后面发现如果我将源文件编码改为GBK,再编译后,运行便不会出现乱码。查阅资料后,知道了一条命令可以查看当前终端使用的编码格式。
1 | chcp |
可以看到当前编码为936,对应的编码格式为GBK
因此,使用GBK编码的文件,编译后的程序在终端运行自然不会出现乱码问题,但是如果是使用UTF-8的,就会乱码了。
我通过查找资料后,发现解决这个问题的方法有很多
解决方法
临时解决
直接每次在运行程序前,在终端输入
1 | chcp 65001 |
将编码改为UTF-8便不会出错了
可以看到当前编码为65001,对应的编码格式为UTF-8
或者,可以使用GBK编码源文件,但是都2024年了,还没人用统一码(UTF-8)吗?
永久解决
对于我这种有强迫症的人来说,一下用这个编码,一下用那个编码,实在太难接受了。必须想办法统一,因此还是有可以永久解决的办法的。
首先右键单击桌面右下角,打开调整日期和时间
然后依次点击
打上勾后,重启,之后终端的默认编码格式就都变成UTF-8了。
PS:不过之后打开一些比较老的软件,可能会出现乱码问题。
我猜想是因为这些老的软件采用的是GBK编码,所以同样是出现了编码不兼容的问题。