2016-06-29 7 views
1

私は、シンボルを表すアスキーシンボルを含むテキストを返すWebサービスを呼び出しています。たとえば:Jackson JSON Unicodeシンボルの処理

ACME Corp® Services 

私はJSONオブジェクトとして直接このテキストデータを返すために、スプリングを使用し、それがブラウザに入った時点でJSONデータは正しいまま:

"service": "ACME Corp® Services" 

しかし、レンダリングされている時にHandlebarsテンプレートを経て、私は取得ページに書き込ま:

ACME Corp® Services 

私はそれを使用する前JSONデータをサニタイズする必要がありますか?もしそうなら、それを実行するベストプラクティスは何ですか?それ以外の場合は、おそらくバックエンドで行うべき変更がありますが、私はそれがどうなるかはわかりません。

+0

これらのリンクは役立つかもしれません:https://github.com/wycats/handlebars.js/issues/110、およびhttp://codrspace.com/durden/dealing-with-special-characters-in-json-and -handlebar-js-template / – paulsm4

答えて

3

コンテンツをサニタイズする必要はありませんが、JSON仕様で許可されている有効なエンコード(通常はUTF-16とUTF-32)を使用する必要があります。

コンテンツがUTF-8が、何か他のもの(「Latin-1の」別名のようISO-8859-1)としてエンコードされていない場合、あなたはそれを正しくデコードするReaderを構築する必要があります。あなたがあるように見える

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

問題使用しているエンコーディングが間違っていることがあります。

関連する問題