Ответ 1
Кодировка определяется с использованием следующих правил:
- Пользователь переопределяет.
- Параметр "charset" HTTP в поле "Content-Type".
- Порядковый порядок байтов перед любыми другими данными в самом документе HTML.
- Объявление META с атрибутом "charset" .
- Объявление META с атрибутом "http-equiv", установленным в "Content-Type", и значением, установленным для "charset" .
- Неопределенный эвристический анализ.
... и затем...
- Нормализовать заданную строку кодировки символов в соответствии с правилами сопоставления псевдонимов Charset, определенными в Unicode Technical Standard # 22.
- Переопределить некоторые проблемные кодировки, т.е. преднамеренно обрабатывать некоторые кодировки, как если бы они были разными кодировками. Наиболее распространенным вариантом является обработка US-ASCII и ISO-8859-1 как Windows-1252, но есть несколько других переопределений кодировки, перечисленных в этой таблице. Как отмечается в спецификации, "Требование к обработке определенных кодировок в качестве других кодировок в соответствии с приведенной выше таблицей является умышленным нарушением спецификации модели символов W3C".
Но самое главное:
Вы должны всегда указывать кодировку символов в каждом документе HTML или плохие вещи будут. Вы можете сделать это сложным способом (заголовок Content-Type HTTP), простой способ (объявление
<meta http-equiv>
) или новый способ (<meta charset>
), но, пожалуйста, сделайте это. Интернет благодарит вас.
Источники: