2013-10-09 5 views
5

Ich benutze derzeit einen Code (beste Antwort auf eine Frage) Ich fand here alles funktioniert einwandfrei, bis Sie geben Sie einen japanischen String Eingang.Wie serialisiert man japanische Zeichen in UTF-8 mit GSON?

Ich dachte, der UTF-8 Zeichensatz würde den Trick tun, aber ich bin nicht wirklich sicher, welcher Teil des Codes nicht erlaubt, japanische Zeichen zu serialisieren.

Zum Beispiel, wenn ich etwas Grundlegendes wie "ひらがな" serialisieren wird es Müllzeichen ausgeben.

Was ich tue, ist so etwas wie

String serialized = serialize("ひらがな"); 
String deserialized = deserialize(serialized, new TypeToken<String>() {}.getType()); 
System.out.println(deserialized); 

Aber ich bin immer einen Müll deserialized.

Kann jemand bitte etwas Licht abwerfen? Vielen Dank.

+1

Ich schwöre, ich habe diese genaue Frage heute schon gesehen ... – ppeterka

+0

Bitte fügen Sie entweder einen Link zu der Antwort hinzu, die Sie verwenden, oder geben Sie den vollständigen Code für die Serializer-Instanz ein. Ohne diesen Code kann diese Frage nicht beantwortet werden ... – ppeterka

+0

@ppeterka66, Ich habe den Link zur ursprünglichen Frage hinzugefügt, wo ich den Code herbekommen habe. Dank an BalusC für den Code. – Incognito

Antwort

3

Ich weiß nicht die genaue Antwort auf Ihre Frage, aber ich kann sagen, ich hatte ein ähnliches Problem und hier war meine Lösung. Vielleicht ist es ein Hinweis für Sie:

Ich verwende nur GSON für Deserialisierung. Ich hatte den folgenden Code aus

json = gson.fromJson(new InputStreamReader(is), parseType); 

zu

json = gson.fromJson(new InputStreamReader(is,"UTF-8"), parseType); 

So ist die Ausgabe in Lesern meines Eingangsstrom war zu ändern, nicht Gson per se. Ich frage mich, ob Sie eine string reader für Deserialisierung oder etwas verwenden müssen. Entschuldigung, ich kann dir keine spezifischere Antwort geben.

+2

Dies ist die gleiche Lösung, die ich habe. Ich bin froh, dass du gepostet hast, seit ich vergessen habe, meine Lösung zu posten, nachdem ich das Problem gelöst habe: D – Incognito

+1

wie man ein Objekt mit UTF-8 Kodierung serialisiert, help –