framsidaHandledning för programvaraHur får webbläsaren kodningen av CSS-dokumentet?
Hur får webbläsaren kodningen av CSS-dokumentet?

Det är mycket mer komplicerat för webbläsaren att skaffa CSS-dokumentets kodning. Platsen där den kan ställa in kodningen är Content-type-fältet i ResponseHeader för att ställa in kodningen charset-attribut och CSS-dokumentet kan också ställas in, och slutligen ett standardkodningsdokument.

Inflytande

Vad blir effekten om css-dokumentet är felkodat? Engelska tecken kan kännas igen normalt, men kinesiska tecken kommer att visas som förvrängda tecken. Detta beror främst på användningen av kinesiska teckensnitt. De kinesiska teckensnitten som visas på sidan är engelska teckensnitt (innehållet är fortfarande på kinesiska, jag menar det som visas teckensnittsändringar).

I vilken ordning hämtar webbläsaren kodningen av CSS-dokumentet?

Enligt [1] CSS 2.1-specifikationen bör kodningen av en extern CSS-fil bestämmas enligt följande prioriteringar:

1. Kodningen som anges av parametern "charset" i fältet "Content-Type" i HTTP-svarshuvudet.

2. BOM och/eller kodning definierad av @charset.

3.<link charset="">eller annan metadata som tillhandahålls av länkmekanismen (om någon).

4. Introducera kodningen som bestäms i HTML-koden för denna CSS-fil eller i en annan CSS-fil (om det finns en).

5. Om kodningen inte kan bestämmas i ovanstående steg, antas det att kodningen är UTF-8.


Skicka en metod för att hämta kodningen från 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; }
Programvara: nedladdning av front-end-mall; SEO-optimering offline; Obs: Denna programvara är inte ett hackerprogram och kan inte ladda ner bakgrundsdata!
Friskrivningsklausul: Tjänsten är avsedd för personliga studier, forskning eller uppskattning, såväl som andra icke-kommersiella eller ideella ändamål, men samtidigt bör den följa bestämmelserna i upphovsrättslagen och andra relevanta lagar och får inte bryta mot juridiska rättigheter för denna webbplats och innehavare av relaterade rättigheter. Riskerna förknippade med att använda verktygen på denna webbplats har ingenting att göra med denna programvara.
Copyright © 2019-2024 Rabbit Software Med ensamrätt Guangdong ICP nr 19111427-2
Handledningsinformation Användarmanual Hemsidor