编码
在main函数中设置 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QString 转 char*
一:
QByteArray byte_data = str.toUtf8();
char *ch = byte_data.data();
二:
QByteArray byte_data = str.toLocal8Bit();
char *ch = byte_data.data();
三:
std::string str1 = str.toStdString();
const char* ch = str1.c_str();
四:
显式地使用宽字符(wchar_t)或UTF-8才是好方法。
QString str0(QString::fromStdWString(L"数学分析"));
QString str1(QString::fromUtf8(u8"高等代数")); // C++11
五:
QString s1 = "汉语";
QString s2("漢語");
QString s3 = tr("中文")
QString s4 = QStringLiteral("中文");
QString s5 = QString::fromWCharArray(L"中文");
QString s6 = u8"中文";//C++11
QString s7 = tr(u8"中文")
六:
增加VS编译参数:将源码字符集和执行文件字符集指定为UTF-8
七:
#pragma execution_character_set("utf-8")
八:
pro文件中加入
win32:msvc{
QMAKE_CXXFLAGS += /source-charset:utf-8 /execution-charset:utf-8
}