網上很多 char * 和 QString的相互轉換,但一般都沒有提到字符集的編碼,使用Utf8和GB2312編碼是有區別的,這時候需要用不用的轉換方法。目前知道的有以下幾種轉換方法。
char *test;
QString::fromUtf8(test);
QString(test);
QTextCodec::codecForName("GB2312")->toUnicode(test);
QString::fromLocal8Bit(test);
QString(QLatin1String(test));
不同編碼需要用不同的轉換方法,根據測算給出下面的結論。
(1)當使用的是Utf8編碼時,經測試使用以下兩個都沒有問題
QString::fromUtf8(test);
QString(test);
(2)當使用的是GB2312編碼時,經測試使用以下兩個都沒有問題
QString::fromLocal8Bit(test);
QString(QLatin1String(test));
要根據實際編碼需求來用不同的轉換。測試是這樣,歡迎談論交流。