2016-06-29 8 views
1

Ich rufe einen Webservice an, der Text einschließlich der ASCII-Symbole zurückgibt, die das ®-Symbol darstellen. Zum Beispiel:Jackson JSON Handhabung von Unicode-Symbolen

ACME Corp® Services 

I Frühling verwenden diese Textdaten direkt als JSON-Objekt zurück, und durch die Zeit wird es in den Browser bleibt die JSON-Daten korrekt:

"service": "ACME Corp® Services" 

Aber auf gerendert wird ich erhalte über eine Handlebars Vorlage und in die Seite geschrieben:

ACME Corp® Services 

Muss ich die JSON Daten sanieren, bevor sie es? Wenn ja, welche Best Practices dafür? Ansonsten, vielleicht gibt es eine Änderung, die ich am Backend machen sollte, aber ich bin mir nicht sicher, was das wäre.

+0

Diese Links könnten helfen: https://github.com/wycats/handlebars.js/issues/110 und http://codrspace.com/durden/dealing-with-special-characters-in-json-and -Lenker-js-Vorlage / – paulsm4

Antwort

3

Sie müssen den Inhalt nicht bereinigen, aber Sie müssen sicherstellen, dass die von der JSON-Spezifikation erlaubte gültige Kodierung verwendet wird: normalerweise UTF-8 (Alternativen sind UTF-16 und UTF-32).

Wenn der Inhalt nicht als UTF-8, sondern etwas anderes codiert ist (wie ISO-8859-1 aka "Latin-1"), müssen Sie Reader konstruieren, um es richtig zu entschlüsseln:

Reader r = new InputStreamReader(in, StandardCharset.ISO_8859_1); 
MyPOJO pojo = mapper.readValue(r, MyPOJO.class); 

Problem Sie zu sein scheinen Haben ist, dass die verwendete Codierung falsch ist.