目录
1.引言
2. 具体步骤
2.1 不同开发环境配置
2.1.1 IDE是Qt Creator
2.1.2 如果IDE是Visual Studio
2.1.3 如果编译器是MSVC
2.2 源码文件main函数入口设置中文编码:
1.引言
Qt的编码向来是比较让人头疼的事情,尤其是涉及跨平台方面的中文编码。
QtCreater 提供了自己的翻译工具Linguist并选择对应版本,这种方法要求代码中必须将待翻译文字使用tr("")标注出来。这种方法在依据控件内容适应大小方面不够灵活,存在局限。
以下方法能够完美解决这一问题:
2. 具体步骤
2.1 不同开发环境配置
2.1.1 IDE是Qt Creator
把它的环境设置为“UTF-8+BOM”编码。
2.1.2 如果IDE是Visual Studio
请下载插件,名称是ForceUTF8 (with BOM),所有源文件和头文件都会保存为“UTF-8+BOM”编码。
2.1.3 如果编译器是MSVC
请在预编译头stdafx.h文件加入
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
# pragma execution_character_set("utf-8")
#endif
2.2 源码文件main函数入口设置中文编码:
#include <QTextCodec>
QApplication a(argc, argv);
//设置中文字体
a.setFont(QFont("Microsoft Yahei", 9));//设置中文编码
#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
#if _MSC_VER
QTextCodec *codec = QTextCodec::codecForName("gbk");
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
#endif
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForLocale(codec);
#endif