私は戻ってQStringのに続いQByteArrayにQStringのやから形質転換のに問題があります:あなたは私は16ビットの範囲内にあるすべての文字でのQStringを埋める見ることができるようにQByteArrayへのQtの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;
}
を。 QByteArray(Utf8)に変換してQStringに戻します。問題は、値が0の文字と値が55295より大きい文字がQStringに変換されないことです。
範囲1〜< 55297の範囲内であれば、このテストに合格します。
それは – user4759923
は「\ 0」を忘れてしまったが、それでも、私は他の値に問題があることを理解していない動作しないことは明らかですので、0文字は、文字列を終了します。 – JanSLO
多分これらのユニコード文字は実装されていません – user4759923