64,648
社区成员
发帖
与我相关
我的任务
分享
//以下是我的测试代码
QString s = "你好"; //被自动转化为Unicode,输出unicode编码
QByteArray b = "你好"; //UTF-8,输出UTF-8编码
QByteArray bArr ; //这个数组是你好的ANSI编码
bArr.resize(4);
bArr[0] = 0xC4;
bArr[1] = 0xE3;
bArr[2] = 0xBA;
bArr[3] = 0xC3;
qDebug()<<s;
qDebug()<<b;
qDebug()<<bArr;
qDebug()<<"你好"; //????未知,为什么只有这个打印出中文而不是编码?
//这句采用的到底是什么编码导致可以输出汉文?
QString Config::unicodeToCn(QString Str)
{
QString filename = Str;
do {
int idx = filename.indexOf("\\u");
QString strHex = filename.mid(idx, 6);
strHex = strHex.replace("\\u", QString());
int nHex = strHex.toInt(0, 16);
filename.replace(idx, 6, QChar(nHex));
} while (filename.indexOf("\\u") != -1);
return filename;
}
试试这个吧,传进去\uxxxx 返回的QString 就是中文了