JAX-RS-Codierung
Bin ich mit JAX-RS zu erstellen, die eine web - (rest) - Dienst, gibt die Ergebnisse im JSON-format.
Ist alles OK, außer die Codierung.
Zum Beispiel, ich:
..., parameter:"Dep\u00f3sitos" ,...
Statt:
..., parameter:"Depósitos" ,...
Habe ich versucht mit:
@Produces("application/json; charset=UTF-8")
aber das problem bleibt. Wenn ich Rückkehr, es als XML verwenden nur:
@Produces("application/xml")
Alles ok ist.
Was ich brauche, um zu produzieren die richtige Art?
- Bearbeiten können Sie Ihre Frage an den eigentlichen code der JSON-Methode?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Landete ich mit GSON, anstatt der IBM-JSON4J die erwies sich als viel besser im Umgang mit benutzerdefinierten Java-Klasse, die Serialisierung.
Werfen Sie einen Blick auf Bryant Luk's Antwort auf die Frage "Wie legen Sie den Zeichensatz mit JAX-RS?" und sehen, ob es funktioniert der trick.
Alles, was Sie brauchen, ist diese:
String.getBytes()
konvertiert den string in die Plattform-default-encoding. Lassen Sie uns sagen, dass Sie auf Windows, so könnte dies durchCP1252
. Dann erstellen Sie ein neues String-Objekt aus diesen bytes und sagen, Java ist der bytes interpretiert werden müssen alsUTF-8
, auch wenn die bytesCP1252
text in diesem Beispiel, die zu Problemen führen. Weiter:back
ist bereits ein String, Java-String-Objekte können gesehen werden als text ohne Kodierung (Sie werden codiert mitUTF-16
intern, aber das spielt keine Rolle). Codierungen werden nur wichtig, wenn ein String in bytes konvertiert.