我在从QString转换到QByteArray然后再回到QString时遇到问题:
int main() {
QString s;
for(int i = 0; i < 65536; i++) {
s.append(QChar(i));
}
QByteArray ba = s.toUtf8();
QString s1 = QString::fromUtf8(ba);
if(areSame(s, s1)) {
qDebug() << "OK";
} else {
qDebug() << "FAIL";
outputErrors(s, s1);
}
return 0;
}
如您所见,我用16位范围内的所有字符填充QString。然后将它们转换为QByteArray(Utf8)并返回QString。问题是值0的字符和值大于55295的字符无法转换回QString。
如果我保持在1到<55297的范围内,则此测试通过。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句