CLion打开VS创建的GBK编码格式的项目中文乱码问题的解决方法
在 CLion 中设置 GBK 编码用于编译代码时,如果输出的 message 乱码,通常是由于控制台编码与代码文件的编码不匹配导致的。以下是解决问题的步骤:
1. 设置文件编码为 GBK
- 确保你的源代码文件是用 GBK 编码保存的。
- 在 CLion 中,打开文件并检查编码:
- 右下角状态栏会显示当前文件的编码格式,确保显示的是
GBK
。 - 如果不是,右键点击编码区域,选择
Reload in Encoding
,然后选择GBK
。
- 右下角状态栏会显示当前文件的编码格式,确保显示的是
2. 配置 CMakeLists.txt
在你的 CMakeLists.txt
文件中,添加以下设置以确保编译器能够正确处理 GBK 编码的源文件:
add_compile_options(-finput-charset=gbk -fexec-charset=gbk)
-finput-charset=gbk
:指明源文件的字符编码是 GBK。-fexec-charset=gbk
:指明程序运行时的输出字符编码是 GBK。
3. 设置 CLion 控制台编码
CLion 默认使用 UTF-8 编码显示控制台输出。如果你的程序在 GBK 编码下输出中文,可以通过以下方式设置控制台编码:
- 打开
Help -> Edit Custom VM Options
。 - 在弹出的文件中,添加以下内容:
-Dfile.encoding=GBK - 保存后重启 CLion。
4. 验证输出
重新编译并运行程序,检查控制台是否正确显示输出。如果仍有问题,可以尝试以下方案:
- 将程序的输出重定向到文件,再用支持 GBK 的文本编辑器打开文件查看输出。
- 在代码中主动设置输出流编码,例如:
#include <iostream> #include <codecvt> #include <locale> int main() { std::locale::global(std::locale("zh_CN.GBK")); std::wcout.imbue(std::locale("zh_CN.GBK")); std::wcout << L"你好,世界!" << std::endl; return 0; }
本文作者:江海余生
本文链接:https://www.cnblogs.com/springcoming/p/18635511
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步