2015-10-22 4 views
1

Я собираю приложение node/express, которое будет возвращать JSON, который был сериализован с использованием JSON.stringify(). Я хотел бы установить HTTP-заголовок Content-Type для включения информации о кодировке - например, application/json; charset=utf-16.Как определить, какая кодировка используется JSON.stringify()?

Мое понимание состоит в том, что JSON.stringify() может производить UTF-16 или UCS-2 Закодированные результаты. Как узнать, какая кодировка использовалась для сериализации JSON, и как лучше всего сообщить пользователю-агентам правильную кодировку?

+0

Я ошибся в 'UCS-2' и' UTF-16'. Они используются внутренне для времени выполнения javascript, но не обязательно связаны с 'JSON.stringify()'. Тем не менее, мне все еще интересно, как проверить, какая кодировка была использована (или для ссылки, которая показывает, что 'JSON.stringify()' может/будет производить только 'UTF-8' – STW

ответ

1

Насколько я понимаю, он возвращает экземпляр типа String, который определяется как последовательность из нуля или более 16-разрядных целых без знака (см. spec).

Я привожу ссылку выше:

значение Строка является членом типа String. Каждое целое значение в последовательности обычно представляет собой одну 16-битную единицу текста UTF-16. Однако ECMAScript не устанавливает никаких ограничений или требований к значениям, за исключением того, что они должны быть 16-разрядными целыми без знака.

Из-за этого, я предполагаю, что это реализация определена. This, возможно, является частью спецификации, которая вас интересует.

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