voorbladSagteware tutoriaalHoe kry die blaaier die enkodering van die CSS-dokument?
Hoe kry die blaaier die enkodering van die CSS-dokument?

Dit is baie meer ingewikkeld vir die blaaier om die CSS-dokumentkodering te bekom. Die plek waar dit die enkodering kan stel, is die Content-tipe veld van ResponseHeader om die enkodering te stel charset-kenmerk, en die CSS-dokument kan ook enkodering gestel word, en uiteindelik 'n verstekkoderingsdokument.

Invloed

Wat sal die impak wees as die enkoderingsherkenningsfout in die CSS-dokument korrek is? Engelse karakters kan normaalweg herken word, maar Chinese karakters sal as verdraaide karakters vertoon word. Dit is hoofsaaklik as gevolg van die gebruik van Chinese lettertipes lettertipe veranderinge).

In watter volgorde kry die blaaier die enkodering van die CSS-dokument?

Volgens die [1] CSS 2.1-spesifikasie moet die enkodering van 'n eksterne CSS-lêer volgens die volgende prioriteite bepaal word:

1. Die enkodering gespesifiseer deur die "charset"-parameter van die "Content-Type"-veld in die HTTP-reaksie-opskrif.

2. BOM en/of enkodering gedefinieer deur @charset.

3.<link charset="">of ander metadata verskaf deur die skakelmeganisme (indien enige).

4. Stel die enkodering in wat bepaal word in die HTML van hierdie CSS-lêer of in 'n ander CSS-lêer (as daar een is).

5. Indien die enkodering nie in die bogenoemde stappe bepaal kan word nie, word aanvaar dat die enkodering UTF-8 is.


Stuur 'n metode om die enkodering vanaf die BOM (C#) te kry:

/// <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; }
Sagteware toepassing: voorkant-sjabloonontwikkeling en -ontwerp SEO-optimalisering; Let wel: Hierdie sagteware is nie 'n hackerprogram nie en kan nie agtergronddata aflaai nie!
Vrywaring: Die diens is vir persoonlike studie, navorsing of waardering, sowel as ander nie-kommersiële of nie-winsgewende doeleindes, maar dit moet terselfdertyd voldoen aan die bepalings van kopieregwetgewing en ander relevante wette, en moet nie die wettige regte van hierdie webwerf en verwante regtehouers Die risiko's verbonde aan die gebruik van die gereedskap op hierdie webwerf het niks met hierdie sagteware te doen nie.
Kopiereg © 2019-2024 Konynsagteware Alle regte voorbehou Guangdong TKP No 19111427-2
Tutoriaal inligting Gebruikers gids Webwerf onderwerpe