W poniższym przykładzie minimalistycznej:Czy ktoś może wyjaśnić kodowanie Unicode Gsona?
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"
}
}
Apostrof zostaje zastąpiony przez swojego Unicode reprezentacja na wydruku. Jednak ciąg zwrócony z metody toJson
dosłownie ma znaki "\", "u", "0", "0", "2", "7".
Dekodowanie za pomocą jsona faktycznie działa i podaje ciąg "Apostrophe:" "w przeciwieństwie do" Apostrophe: \ u0027 ". Jak powinienem ją odkodować, aby uzyskać ten sam wynik?
I dodatkowe pytanie, dlaczego losowy kod Unicode, taki jak ش, nie zostanie zakodowany w podobny sposób?
Dzięki! Ponadto, widziałem, że JsonReader dekoduje takie znaki za pomocą 'JsonReader.readEscapeCharacter()', co w rzeczywistości wygląda dość skomplikowane. Wielkie dzięki! – Miquel