3

オブジェクトをシリアル化するために GSON を使用しています。しかし、何らかの理由で、特定の Unicode 文字をエスケープしていません。

    Gson gson =  new Gson();
    System.out.println(gson.toJson("™"));
    System.out.println(Character.codePointAt("™", 0) );
    System.out.println(Character.codePointAt("™", 1) );

出力:

「™」

194

8482

文字が確実にエスケープされるようにする設定はありますか?

4

1 に答える 1

6

JSON 文字列で許可されているため、Unicode 文字をエスケープする理由はありません。

json.orgから:

ここに画像の説明を入力

JSON をブラウザーに送信する際に問題が発生した場合は、HTTP ヘッダーが UTF-8 に設定されていることを確認してください。

Java のように Unicode 文字を本当にエスケープしたい場合は、apache commons の StringEscapeUtils#escapeJavaを使用できますが、おそらく使用すべきではありません。

于 2013-01-02T20:27:52.883 に答える