1、首先,我们要明白乱码的原因。原因肯定是编码与解码不一致导致的,我们先来看看编码与解码的情况。打开命令提示符窗口,在标题栏上右键,属性。
2、在打开的属性窗口中,选择选项标签页,可以看到当前代码页组框中有“936 (ANSI/OEM -简体中文 GBK)”的字样,很明显命令提示符的解码方式是GBK。
3、再来看看源代码main.cpp的编码。可以在记事本的另存为对话框中看到,编码是UTF-8的方式。而且我的QtCreator的默认解码方式也是UTF-8,所以能够正确解码,否则源代码也会是乱码。
4、来看看编译运行的情况。源代码中的“你好,C++!”已经变成火星文了,不知道怎么打火星文的童鞋有福了。
5、既然是编码的问题,当然从编码入手了。我们把源代码的编码方式改了不就行了。用记事本打开main.cpp,然后打开另存为对话框,对话框的下方的编码我们选择ANSI。然后确定覆盖原来的main.cpp。
6、这时候我们的QtCreator不乐意了,弹出了个对话框。意思是,源代码在外部被改写,要不要重新载入,选择Yes to All。
7、这时候又出现问题了,窗体顶部弹出个条,提示我们无法用UTF-8解码main.cpp。当然不能用UTF-8了,因为我们把它转换成了ANSI。而且,源代码中的汉字也变成了一团不知道是啥的东西。
8、点击那个条上的 Select Encoding 。我们选择GBK那行,然后点击按编码重新载入。之后一切又都好了。
9、再运行下看看。好了,运行正常。对于强迫症者来说,感觉呼吸都轻松多了。