必须将所有源文件统一为UTF-8无BOM编码,并配置QoderWake默认编码为UTF-8、关闭BOM选项,同时在.pro中添加UTF-8编译参数及Windows下设置控制台编码为CP_UTF8。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你在QoderWake里写好中文注释、配置项或界面文本,保存后重新打开却变成一堆问号、方块或“锟斤拷”,甚至编译时报错说字符串字面量非法——这不是代码写错了,是文件编码在某个环节悄悄脱节了。
统一所有源文件为UTF-8无BOM
这是整个修复链条的起点。只要有一个.cpp或.h文件仍用GBK保存,它就会在编译时把“刘”字拆成两个非法字节,污染整条构建流水线。
第一步:在QoderWake中打开任意含中文的源文件(如main.cpp)。
第二步:点击编辑器右下角状态栏的当前编码标识(常见显示为“GBK”“System”或“UTF-8 with BOM”)。
第三步:从弹出菜单中选择【UTF-8 without BOM】,勾选“另存为并替换原文件”。这一步必须手动确认覆盖,否则只改内存不改磁盘。
第四步:对项目内所有含中文的文件重复执行前三步——包括.ui、.qrc、.json和配置类文本文件。不要跳过任何一处,哪怕只是README.md里的一句中文说明。
配置QoderWake全局默认编码
避免新建文件再次掉进坑里,得让IDE记住“以后所有新文件,生下来就必须是UTF-8无BOM”。
进入工具→选项→文本编辑器→行为→文件编码,将“默认编码”设为UTF-8。
取消勾选“如果编码是UTF-8则添加BOM”——这个选项看似无害,实则会在Windows下触发MSVC误判,在Linux/macOS下引发解析失败,【必须关闭】。
点击确定后重启QoderWake,否则设置不生效。
强制编译器按UTF-8读取与执行
即使文件是UTF-8,若编译器仍按系统默认(Windows下常为GBK)去解码字符串字面量,qDebug输出照样是乱码。
代码编辑 CLI 工具集合:Cursor CLI(agent)和 Qoder CLI(qodercli),用于代码修改、重构、Code Review 及自动化代码任务。
方法一:修改项目根目录下的qodewake.pro文件
在文件末尾添加两行:
QMAKE_CXXFLAGS += -finput-charset=UTF-8 -fexec-charset=UTF-8
方法二:若使用MSVC工具链,必须额外加条件块
win32-msvc {
QMAKE_CXXFLAGS += /utf-8
QMAKE_CFLAGS += /utf-8
}
保存.pro后,点击构建→执行qmake,确保新参数注入到Makefile中。
运行时控制台输出同步为UTF-8
Windows控制台默认用GBK解码输出流,哪怕你传的是标准UTF-8字节,它也会当成GBK去画,结果就是“你好”变“浣犲”。
在main()函数最开头插入:
#ifdef Q_OS_WIN
SetConsoleOutputCP(CP_UTF8);
SetConsoleCP(CP_UTF8);
#endif
注意:这两行必须放在QApplication构造之前,否则UI已启动,控制台编码再改也晚了。

















