първа страницаУрок по софтуерКак браузърът получава кодирането на CSS документа?
Как браузърът получава кодирането на CSS документа?

За браузъра е много по-сложно да получи кодирането на HTML документа. Мястото, където може да зададе кодирането, е полето Content-type на ResponseHeader, за да зададе кодирането charset атрибут и CSS документът също може да бъде зададен кодиране и накрая документ за кодиране по подразбиране.

Влияние

Какво ще бъде въздействието, ако css документът е кодиран неправилно? Английските символи могат да бъдат разпознати нормално, но китайските символи ще се показват като изкривени. Това се дължи главно на използването на китайски шрифтове, показани на страницата, са английски шрифтове (съдържанието все още е на китайски, имам предвид показаното промени в шрифта).

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

Съгласно спецификацията [1] CSS 2.1, кодирането на външен CSS файл трябва да се определя според следните приоритети:

1. Кодирането, посочено от параметъра "charset" на полето "Content-Type" в заглавката на HTTP отговора.

2. BOM и/или кодиране, определени от @charset.

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

4. Въведете кодирането, определено в HTML на този CSS файл или в друг CSS файл (ако има такъв).

5. Ако кодирането не може да бъде определено в горните стъпки, се приема, че кодирането е UTF-8.


Изпратете метод за получаване на кодирането от BOM (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 оптимизация; Забележка: Този софтуер не е хакерска програма и не може да изтегля фонови данни!
Отказ от отговорност: Услугата е за лично изучаване, проучване или оценяване, както и за други некомерсиални или нестопански цели, но в същото време тя трябва да отговаря на разпоредбите на закона за авторското право и други приложими закони и не трябва да нарушава законните права на този уебсайт и притежателите на свързани права Рисковете, свързани с използването на инструментите на този сайт, нямат нищо общо с този софтуер.
Авторско право © 2019-2024 Rabbit Software Всички права запазени Гуандун ICP № 19111427-2
Информация за урока Ръководство за употреба Теми на уебсайта