は、以下の最小限の例では:誰かがGsonのユニコードエンコードを明確にすることはできますか?
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonStuff {
public static void main(String[] args) {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
System.out.println(gson.toJson("Apostrophe: '"));
//Outputs: "Apostrophe: \u0027"
}
}
アポストロフィは、プリントアウトで、それのUnicode表現に置き換えられます。ただし、toJson
メソッドから返される文字列には、文字 '¥'、 'u'、 '0'、 '0'、 '2'、 '7'が文字通りあります。
jsonでそれをデコードすると、実際には動作し、 "Apostrophe:\ u0027"ではなく、 "Apostrophe: '"という文字列が与えられます。同じ結果を得るためには、どのようにデコードする必要がありますか?
もう1つ質問すれば、なぜشのようなランダムなユニコード文字も同様にエンコードされないのですか?
ありがとうございます!また、JsonReaderが実際にかなり複雑に見える 'JsonReader.readEscapeCharacter()'を使ってそのような文字をデコードするのを見ただけです。どうもありがとう! – Miquel