QtCreator 中文乱码解决

澄清:Qt对中文支持没啥问题,也不用什么特殊的函数,为了解决烦恼,必须了解下文件编码知识,比如utf-8可以不要bom,utf-32为啥需要bom等等。简单来说,所有源码文件,均保存为 UTF-8 无bom,基本不再有乱码,绝大多数情况下,根本不需要类似latin1等函数,用不到的!

无bom 无bom 无bom,非常重要!在各种文章的轰炸下,很多时候大家都知道选择UTF-8,但是一定要注意bom

Windows系统下,常用的编码有如下几种,这也是很多问题的起源。

直接用VS ide的话,默认的编码格式是GBK
用VS ide保存为UTF-8,很多人很多人保存成了UTF-8带BOM
Linux系统下,一般不存在这些问题,因为默认的编码都是 UTF-8不带bom

如果你的代码需要在Windows和Linux下都要运行的话,我建议直接用UTF-8不带bom

假设你用Qt Creator这个ide的话

1 在项目pro文件中加上这段代码,VS编译器默认使用GBK编码,需要特别配置

win32-msvc* {
    QMAKE_CXXFLAGS += /source-charset:utf-8 /execution-charset:utf-8
}

在这里插入图片描述