приложение/ * атрибуты Content-Type и charset
В RFC-2616 говорится в 3.7.1:
Именно поэтому я обычно использую, например,Если отправитель не предоставляет явного параметра charset, носитель подтипы типа "текст" определяются как имеющие кодировку по умолчанию значение "ISO-8859-1" при получении по протоколу HTTP.
text/plain; charset=utf-8
в качестве заголовка Content-Type
.
Как насчет Медиатипов типа application
?
Я часто вижу, что un использует заголовки, такие как Content-Type: application/xml; charset=UTF-8
. RESTeasy 2.3.7 затем заставляет клиента также отправить параметр charset в заголовке Accept
. В противном случае он ответит с 406
. RESTeasy 3.0.6 кажется здесь более терпимым, поэтому я не уверен, что здесь лучшая практика.
1 ответ:
RFC 2616 был устаревшим в июне 2014 года набором RFC, где один, содержащий общие спецификации HTTP, являетсяRFC 7213 . Пожалуйста, используйте редактор RFC для проверки текущего состояния RFC.
RFC 7213 явно говорит (в приложении B):
Кодировка по умолчанию ISO-8859-1 для типов текстовых носителей была
удалено; по умолчанию теперь все, что говорится в определении типа носителя.С другой стороны, RFC 6657 , в то время как предвидя такие изменения, заявляет:
Таким образом, если ваши данные не являются ASCII (= US-ASCII), вы должны продолжать объявлять параметрЗначение параметра "charset" по умолчанию для параметра" text/plain " остается неизменным от [RFC2046] и остается как "US-ASCII".
charset
явно.Спецификация XML, предложение 4.3.3, указывает:
Таким образом, для XML, передаваемого по протоколу HTTP, независимо от типа контента, кодировка должна быть явно задана либо в заголовке HTTP, либо в объявлении кодировки, напримерПри отсутствии внешней информации кодирования символов (например, Заголовки MIME), анализируемые сущности, которые хранятся в кодировке другой чем UTF-8 или UTF-16 должны начинаться с текстового объявления [...] содержащее объявление кодировки
<?xml encoding='UTF-8'?>
.Для типов
application
В общем случае могут применяться специфические для типов правила. Кодирование символов не имеет отношения к большинству типовapplication
, поскольку типы определяют свои собственные схемы кодирования, включая кодирование любых встроенных символьных данных.