0%

终端乱码问题解决

终端乱码问题解决

最近发现有时候在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编码,所以同样是出现了编码不兼容的问题。