2016-06-29 4 views
1

Я вызываю веб-сервис, который возвращает текст, включая символы ascii, обозначающие символ ®. Например: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-шаблон / – paulsm4

ответ

3

Вам не нужно санировать содержимое, но вы должны убедиться, что оно использует допустимую кодировку, разрешенную спецификацией JSON: обычно UTF-8 (альтернативы UTF-16 и UTF-32).

Если содержимое не кодируется как UTF-8, но что-то другое (например, ISO-8859-1 ака «Latin-1»), вам нужно будет построить Reader расшифровать его правильно:

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

Проблема вы, кажется, что используется некорректное кодирование.

Смежные вопросы