Unicode の文字列 (QString) を utf-8 に変換しようとしています。
qDebug は次のような文字列を出力します:
「障害コード ソープ: クライアント: \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u0441 \u0438\u0434\u0435\u043D\u0442\u0438\u048\u048\u048 u043A\u0430\u0442\u043E\u0440\u043E\u043C \u00AB16163341545811\u00BB \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D"
私はこのように使ってみQTextCodec
ましたが、同じ読めない文字列を出力します:
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QString readableStr = QString::fromUtf8(codec->fromUnicode(str));
私は何を間違っていますか?
編集:
何が起こっているのだろうと思いますが、qDebug
印刷すると発生しますQString
...
次のコード
qDebug() << QString::fromUtf8("тест") << "тест" << QString::fromUtf8("тест").toUtf8().data();
プリントアウト:
「\u0442\u0435\u0441\u0442」