заголовок запроса типа содержимого - PullRequest
4 голосов
/ 23 ноября 2011

Я делаю ajax-вызов к API остальных и указал следующий заголовок HTTP post-запроса.

Content-Type    application/json; charset=UTF-8

В моем теле сообщения содержатся некоторые японские / китайские иероглифы.

Теперь, в чем мой вопрос, нужно ли мне кодировать тело запроса post с кодировкой UTF-8 или браузер позаботится о кодировке?

1 Ответ

4 голосов
/ 05 апреля 2012

Когда ваш заголовок Content-Type объявляет кодировку UTF-8, вы должны отправить содержимое в кодировке UTF-8.

Хотя браузеры иногда "угадывают" или "исправляют"кодирование, вы никогда не должны полагаться на это, так как это очень хрупкая логика, которая часто не работает должным образом.

Если ваш китайский / японский контент был в другой кодировке (например, Shift-JIS), то выпридется преобразовать текст с библиотекой, например iconv.

В качестве альтернативы вы можете объявить эту другую кодировку в заголовке, но учтите, что вы можете использовать только одну кодировку для всего тела ответа.Преобразование всего в UTF-8 обычно является лучшим решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...