першая старонкаПадручнік па праграмным забеспячэнніЯк браўзер атрымлівае кадыроўку дакумента 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.


Адправіць метад, каб атрымаць кадыроўку з 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
Інфармацыя аб падручніку Кіраўніцтва карыстальніка Тэмы сайта