0

Qt アプリケーション (C++) があり、ユニコード文字列 (QString) があります。文字列を 2 つのクライアントに送信します。1 つはバイナリ データを受信し、もう 1 つは JSON です。

次の文字列「Milanović」を送信すると、文字「ć」がクライアント側で台無しになります。サーバーから正しく送信されているかどうかさえわかりませんが。

バイナリ データを受け入れるクライアントに、その文字の次のバイトを送信しています: c4 86。それは、QString::toUtf8() から得ているものです。

JSONの場合、その文字列を「MilanoviÄ」に変換するQJsonを使用しています。まあ、それは私がコンソールで見るものです。バイトはまだ「c4 86」です。

それは正しいですか、それともサーバー側で何かを変更する必要がありますか? QJson lib を変更して、コードが 127 を超える文字の変換を行わないようにすることもできますが、必要がない限り、そうしたくありません。お知らせ下さい。

4

1 に答える 1

0

クライアントに実際に必要なエンコーディングをサーバーに伝えてから、クライアントに送信する前に適切な QTextEncoder を介してテキストを実行する必要があります。

于 2012-11-30T11:16:09.373 に答える