나는 다시 QString에 다음 QByteArray에 QString에서 어트 변환에 문제가와 있습니다Qt는 QString QByteArray에 다시
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 사이에 머문다면이 테스트가 통과합니다.
0으로부터 문자는 문자열을 종료, 그래서 그것이 – user4759923
은 '\ 0'하지만 아직도 내가 다른 값으로 문제를 이해하지 않습니다에 대해 잊어 버렸 작동하지 않습니다 분명하다. – JanSLO
어쩌면이 유니 코드 문자가 구현되지 않았을 수도 있습니다. – user4759923