1、首先说明一下环境:
Windows 10
Clion 18.3
MinGW-W64
2、首先说下位替代方案:
File-Settings-Editor-File Encodings
如图设置Global Encoding=UTF-8、Project Encoding=UTF-8,
path的文件均为GBK
360截图20201109170450450.jpg
3、一般来说 这从“表面上”解决了问题 但是实际上严格来说这个方法是错误的,它是错错得正
文本是GBK然后编译器把它当成UTF-8然后又当成UTF-8输出在GBK的控制台
为啥要这么换呢?因为点击绿箭头运行过后输出结果是显示在RUN里面的
而这个RUN是根据系统默认编码(GBK)来显示中文的,所以要想正式显示中文
编辑的文本必须是GBK格式,可是按照上面的方式修改编码格式过后
每次打开CLion要想正确使用中文都要切换文本编码为GBK。
4、更好的解决方案:
修改系统编码为UTF8(不建议 因为不一定所有软件都适配)
在代码中加上头文件windows.h并且在程序开始时调用系统函数
system(“chcp 65001 > nul”);
这样就完美解决问题了
如果是在控制台乱码建议读者了解一下CHCP
还可以使用Win32控制台编程接口里面设置输入输出的编码格式
参考链接:https://docs.microsoft.com/en-us/windows/console/
另外我来说明一下为什么会乱码
g++在编译时默认输入编码和输出编码都是UTF-8
然后Windows操作系统默认字符集是GBK
IDE会自动指定实际CPP文件的文本编码但不会指定输出的文本编码
所以我们只需要在编译时为g++添加参数-fexec-charset=GBK即可
但是这个g++并不是我们手动调用的
在Clion里面我们需要在Cmakelist.txt文件里面添加一句话

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexec-charset=GBK")

最后修改:2024 年 02 月 14 日
如果觉得我的文章对你有用,请随意赞赏