Qt
大约 2 分钟
Qt
目录
乱码问题
中文乱码或中文报错
报错
- 常量中有换行符
报错解决方法
- 顶部菜单 > 工具 > 选项 > 文本编辑器 > Behavior > 文件编码 > UTF-8 BOM > 修改成 “如果编码是UTF-8则添加”
- 重新输入几个中文进字符串中(这有个bug,必须重新输入。也不用全部重新输入,就输入几个字就行,不然没用)
- 但该方法使用后,虽然不报错了,但中文部分会显示成乱码
乱码解决方法(强制使用某编码输出)
QString::fromLocal8Bit("中文文本")
,解决Qt中MSVC编译的中文乱码的问题
乱码解决方法(告诉编译器用什么编码)
#CONFIG += utf8_source msvc{ QMAKE_CFLAGS += -Qoption,cpp--unicode_source_kind,UTF-8 QMAKE_CXXFLAGS += -Qoption,cpp,--unicode_source_kind,UTF-8 }
网站也有人这样写:
msvc{ QMAKE_CFLAGS += /utf-8 QMAKE_CXXFLAGS += /utf-8 }
注意两个词的区别
- 文件编码
- 解释器解码
0
Qt编码实例(注意的是,编辑器)
中文: 你好世界 ———————————————————————————————————————————— Qt_编译结果:(MSVC和MinGW结果一样) \344\275\240 \345\245\275 \344\270\226 \347\225\214 Qt_编译结果转2进制:(这里的010有点诡异) 01110 0100 010 111101 010 100000 01110 0101 010 100101 010 111101 01110 0100 010 111000 010 010110 01110 0111 010 010101 010 001100 Qt_编译结果转16进制:(会发现很奇怪,对不上) 39 17aa0 39 54abd 39 17096 39 d2a8c ———————————————————————————————————————————— 16进制: \u4f60\u597d\u4e16\u754c 或你好世界 16进制转2进制:(记得补前面的0) 0100 111101 100000 0101 100101 111101 0100 111000 010110 0111 010101 001100 ———————————————————————————————————————————— (其实和GBK并没什么关系的,这里写出来是参考学习而已) GBK: e4baa0e5a5bde4b896e7958c GBK转utf-8: c4e3bac3cac0bde7 GBK转2进制: 1100010011100011 1011101011000011 1100101011000000 1011110111100111 ———————————————————————————————————————————— 用GBK解码utf8编码: 浣犲ソ涓栫晫 用utf8解码GBK编码: ģºÊÀ½(或者形式为实体长方格子,或者形式为问好)