/ / - спеціальне декодування символів - java, jquery, json, rest, jersey

- спеціальне декодування символів - java, jquery, json, rest, джерсі

У нашому сервісі Jersey REST ми відправляємо назад — на клієнт браузера, як елемент у об'єкті JSON. Але клієнт JQuery браузера, який споживає мій сервіс, замість того, щоб декодувати його в літерал - відображає його як —, само кодоване значення.

Цікаво, чи потрібно змінити налаштування в Джерсі або JSON-резольвері, щоб клієнтський браузер зрозумів його як літерал -. Я надсилаю вихідний JSON з Джерсі у форматі UTF-16. Оцініть будь-яку допомогу.

Відповіді:

1 для відповіді № 1

— може бути дійсним у HTML або XML. Але в JSON це u2014 (2014 - це шістнадцяткове представлення десяткового числа 8212):

{
"trip": "New York u2014 Chicago"
}

Ви можете перевірити це JSONLint.

До речі, як саме ви генеруєте вихід JSON? Вам не потрібно піклуватися про деталі кодування символів. Джерсі повинні зробити це за вас.

Оновлення: Очевидно, що ваші початкові дані є кодуванням HTML або XML (з якоїсь причини). Тому рішення полягає в тому, щоб скасувати кодування, перш ніж надсилати його як JSON. Джерсі подбає про відпочинок.

Якщо ваші дані лише HTML / XML, кодовані для певних символів, але не в цілому, то у вас є проблема, яку потрібно вирішити ще ближче до джерела.


0 для відповіді № 2

Ви відправляєте &#8212 або —? Пам'ятайте, що об'єкт повинен мати кінцеву крапку з комою.