QT 5.3.2 + VC2012 中文乱码 完美解决方案

来源:互联网 发布:俄罗斯高加索知乎 编辑:程序博客网 时间:2024/06/04 23:18

本人原创,转载请注明,谢谢!

业余时间开始使用QT,发现用VC开发存在中文乱码问题,网上查阅了一圈后,发现解决方式都不怎么完美,要设定QTextCodec::setCodecForxxx,输出中文还要调用QString::fromLocal8Bit(“”)等等。这样的方式我是不愿意接受的,折腾了1小时后完美解决,方案和步骤如下:

1、修改新建C++和Header文件对应模版文件的默认编码 为 utf-8 with signature

VC2012 文件路径:

X:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcprojectitems\newc++file.cpp

X:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcprojectitems\hfile.h

其他版本的vc未测试,理论上应该都是差不多位置。


2、VC新建QT项目,需要修改项目字符集

位置:VS菜单->Project->Properties->Configuration Properties->General->Character Set 

设为:Use Unicode Character Set


3、修改当前QT项目中用到中文输出的cpp文件单独保存一次编码

步骤1:打开要修改编码的cpp文件

步骤2:vs菜单->File->Advanced Save Options ,Encoding 设为 Unicode(UTF-8 without signature)-Codepage 65001

(所有QT项目中用到中文输出的文件都需要执行一次本操作)


4、让vs在某些情况下默认将文档保存为UTF-8【这一步并非必须】

vs菜单->Tool->Options->Enviroment->Documents

选中 【Save documents as Unicode when data cannot be saved in codepage】


5、调用QString的方式

如:QMessageBox mess(QMessageBox::Question, QStringLiteral("删除提示", "确认删除所选组件???"), NULL);  

注意这个宏 QStringLiteral(),需要#include <QTextCodec>


至此,用QT+VC开发再无中文编码问题(但不能算十全十美,因为使用单字节字符串还是有问题,不然就只能升级到vs2013了)。

0 0
原创粉丝点击