Какие кодировки поддерживают основные браузеры? - PullRequest
3 голосов
/ 27 января 2012

Заголовок HTTP 1.1 Accept-Charset позволяет браузеру указать, какие кодировки символов он принимает.Мои вопросы:

  • Для основных браузеров, какие значения они указывают в заголовке Accept-Charset?
  • Будет ли браузер когда-либо указывать другой Accept-Charset значения, основанные на домене, URL или любом другом факторе?
  • Разве любой из основных браузеров "допускает" кодировки символов, не указанные в заголовке Accept-Charset?Например, сервер отправляет ответ, который явно указывает другую кодировку, или обнаружение кодировки в браузере обнаруживает другую кодировку?

Приветствия.

1 Ответ

4 голосов
/ 27 января 2012

Заголовки Accept-Charset зависят от локали браузера.Мой Firefox отправляет ISO-8859-1,utf-8;q=0.7,*;q=0.7, а Chrome отправляет ISO-8859-1,utf-8;q=0.7,*;q=0.3, тогда как IE, Opera и Safari не отправляют заголовок Accept-Charset.Но, скажем, в российской или японской среде, вероятно, есть что-то еще вместо ISO-8859-1.

Заголовки Accept-Charset не очень полезны.Они предназначены для указания предпочтений браузера в случае, если сервер может предоставить несколько альтернатив, но если вы хотите, чтобы ваш сервер делал такие вещи, вы действительно поверите тому, что говорят браузеры?В моих примерах все, что говорят браузеры (если они что-то говорят), выражает предпочтение ISO-8859-1 по сравнению с UTF-8 или другими кодировками и, в случае Chrome, дополнительно предпочтение по UTF-8 по сравнению с другими кодировками, чем ISO-8859-1.

Я никогда не видел изменений по домену или URL.Хотя это возможно, конечно, такое изменение не будет иметь большого смысла.Мы можем ожидать, что это собственная среда браузера.

Все браузеры в моем тесте указывают по протоколу HTTP, что любая кодировка символов приемлема.Они делают это, вообще не отправляя Accept-Charset или включая * в заголовок.Что они действительно могут сделать, это другая проблема, и меню View → Encoding в браузерах не обязательно являются исчерпывающими, но они дают некоторое представление о том, сколько кодировок может поддерживать браузер.

Черновик HTML5 содержит продолжительное обсуждение определяет кодировку .Он частично предназначен для описания текущего поведения браузера, частично для предписания или, по крайней мере, для подсказки того, что должны делать браузеры, и различить их не всегда легко.Обратите внимание, что «язык локали» в предлагаемой таблице кодировок по умолчанию относится к локали browser , а не к языку веб-страницы.И речь идет о выводе кодировки, когда нет более качественной информации, но очевидно, что браузеры с разными локалями должны обрабатывать кодировки, которые им предлагается выводить.

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