Titulinis lapasPrograminės įrangos pamokaKaip naršyklė gauna CSS dokumento koduotę?
Kaip naršyklė gauna CSS dokumento koduotę?

Naršyklėms gauti CSS dokumento kodavimą yra daug sudėtingiau nei gauti HTML dokumento kodavimą. Vieta, kur ji gali nustatyti kodavimą, yra ResponseHeader turinio tipo laukas, kuriame galima nustatyti kodavimą charset atributas ir CSS dokumentas, taip pat gali būti nustatytas kodavimas ir pagaliau numatytasis kodavimo dokumentas.

Įtaka

Koks bus poveikis, jei css dokumentas bus užkoduotas neteisingai? Angliškus simbolius galima atpažinti įprastai, tačiau kinų simboliai bus rodomi kaip iškraipyti šrifto pakeitimai).

Kokia tvarka naršyklė gauna CSS dokumento koduotę?

Pagal [1] CSS 2.1 specifikaciją išorinio CSS failo kodavimas turėtų būti nustatytas pagal šiuos prioritetus:

1. Kodavimas, nurodytas HTTP atsako antraštės lauko „Content-Type“ parametru „charset“.

2. BOM ir (arba) kodavimas, apibrėžtas @charset.

3.<link charset="">arba kiti susiejimo mechanizmo pateikti metaduomenys (jei yra).

4. Įveskite kodavimą, nustatytą šio CSS failo HTML arba kitame CSS faile (jei toks yra).

5. Jei kodavimo negalima nustatyti atliekant pirmiau nurodytus veiksmus, daroma prielaida, kad kodavimas yra UTF-8.


Siųsti metodą, kaip gauti kodavimą iš MK (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; }
Programinė įranga: front-end šablonų kūrimas ir projektavimas neprisijungus prie interneto; Pastaba: ši programinė įranga nėra įsilaužėlių programa ir negali atsisiųsti foninių duomenų!
Atsakomybės apribojimas: paslauga skirta asmeniniam mokymuisi, tyrinėjimui ar vertinimui, taip pat kitais nekomerciniais ar ne pelno tikslais, tačiau tuo pat metu ji turi atitikti autorių teisių įstatymo ir kitų atitinkamų įstatymų nuostatas ir neturi pažeisti šios svetainės ir susijusių teisių turėtojų teisės. Rizika, susijusi su šios svetainės įrankių naudojimu, neturi nieko bendra su šia programine įranga.
Autorių teisės © 2019-2024 Rabbit Software Visos teisės saugomos Guangdong ICP Nr. 19111427-2
Pamokos informacija Vartotojo vadovas Svetainės temos