网上很多 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));
要根据实际编码需求来用不同的转换。测试是这样,欢迎谈论交流。
本文探讨了char*与QString之间的转换方法,重点分析了Utf8和GB2312编码下的不同转换策略。对于Utf8编码,推荐使用QString::fromUtf8(test)或QString(test);对于GB2312编码,则建议采用QString::fromLocal8Bit(test)或QString(QLatin1String(test)).正确选择转换方法对于避免乱码至关重要。
3616

被折叠的 条评论
为什么被折叠?



