титульная страницаУчебник по программному обеспечениюКак браузер получает кодировку документа CSS?
Как браузер получает кодировку документа CSS?

Браузеру гораздо сложнее получить кодировку документа CSS, чем получить кодировку документа HTML. Местом, где он может установить кодировку, является поле Content-type в ResponseHeader для установки кодировки. Тег ссылки также может установить кодировку. Также можно установить атрибут charset, а также кодировку документа CSS и, наконец, документ кодировки по умолчанию.

Влияние

Каковы будут последствия, если ошибка распознавания кодировки в документе CSS верна? Английские символы распознаются нормально, но китайские символы будут отображаться искаженно. В основном это связано с использованием китайских шрифтов. Китайские шрифты, отображаемые на странице, являются английскими шрифтами (содержимое по-прежнему на китайском языке, я имею в виду отображаемые). шрифт меняется).

В каком порядке браузер получает кодировку документа CSS?

Согласно спецификации [1] CSS 2.1, кодировка внешнего файла CSS должна определяться в соответствии со следующими приоритетами:

1. Кодировка, указанная параметром «charset» поля «Content-Type» в заголовке HTTP-ответа.

2. Спецификация и/или кодировка, определяемая @charset.

3.<link charset="">или другие метаданные, предоставляемые механизмом связывания (если таковые имеются).

4. Введите кодировку, определенную в HTML этого CSS-файла или другого CSS-файла (если он есть).

5. Если кодировку невозможно определить на вышеуказанных этапах, предполагается, что это кодировка UTF-8.


Отправьте метод для получения кодировки из спецификации (C#):

/// <summary> /// 从字节流判断编码(返回null是不能判断出编码) /// </summary> /// <param name="bt">输入字节流</param> /// <returns></returns> internal static string GetEncodingByByte(byte[] bt) { //带BOM的utf-8 var utf8 = new byte[] { 0xEF, 0xBB, 0xBF }; if (bt[0] == utf8[0] && bt[1] == utf8[1] && bt[2] == utf8[2]) { return "utf-8"; } //UTF-32-BE var utf32Be = new byte[] { 0x00, 0x00, 0xFE, 0xFF }; if (bt[0] == utf32Be[0] && bt[1] == utf32Be[1] && bt[2] == utf32Be[2] && bt[3] == utf32Be[3]) { return "utf-32"; } //UTF-32-LE var utf32Le = new byte[] { 0xFF, 0xFE, 0x00, 0x00 }; if (bt[0] == utf32Le[0] && bt[1] == utf32Le[1] && bt[2] == utf32Le[2] && bt[3] == utf32Le[3]) { return "utf-32"; } //UTF-32-2143 var utf322143 = new byte[] { 0x00, 0x00, 0xFF, 0xFE }; if (bt[0] == utf322143[0] && bt[1] == utf322143[1] && bt[2] == utf322143[2] && bt[3] == utf322143[3]) { return "utf-32"; } //UTF-32-3412 var utf323412 = new byte[] { 0xFE, 0xFF, 0x00, 0x00 }; if (bt[0] == utf323412[0] && bt[1] == utf323412[1] && bt[2] == utf323412[2] && bt[3] == utf323412[3]) { return "utf-32"; } //UTF-16-BE var utf16Be = new byte[] { 0xFE, 0xFF }; if (bt[0] == utf16Be[0] && bt[1] == utf16Be[1]) { return "utf-16"; } //UTF-16-LE var utf16Le = new byte[] { 0xFF, 0xFE }; if (bt[0] == utf16Le[0] && bt[1] == utf16Le[1]) { return "utf-16"; } return null; }
Программное обеспечение: загрузка шаблонов интерфейса; разработка и дизайн SEO-оптимизации; просмотр веб-страниц в автономном режиме; Примечание. Это программное обеспечение не является хакерской программой и не может загружать фоновые данные!
Отказ от ответственности: Сервис предназначен для личного изучения, исследования или оценки, а также для других некоммерческих или некоммерческих целей, но в то же время он должен соответствовать положениям закона об авторском праве и других соответствующих законов и не должен нарушать законные права этого веб-сайта и правообладателей связанных с ним рисков, связанных с использованием инструментов на этом сайте, не имеют никакого отношения к этому программному обеспечению.
Copyright © 2019-2024 Rabbit Software. Все права защищены. Гуандун ICP № 19111427-2
Информация об уроке Руководство пользователя Темы сайта