voorpaginaSoftware-tutorialHoe verkrijgt de browser de codering van het CSS-document?
Hoe verkrijgt de browser de codering van het CSS-document?

Het is veel ingewikkelder voor de browser om de CSS-documentcodering te verkrijgen dan om de HTML-documentcodering te verkrijgen. De plaats waar de codering kan worden ingesteld, is het veld Content-type van ResponseHeader om de codering in te stellen charset attribuut, en het CSS-document kan ook worden ingesteld, en ten slotte een standaard coderingsdocument.

Invloed

Wat zal de impact zijn als de coderingsherkenningsfout in het CSS-document correct is? Engelse karakters kunnen normaal worden herkend, maar Chinese karakters worden weergegeven als verminkte karakters. Dit komt voornamelijk door het gebruik van Chinese lettertypen. De Chinese lettertypen die op de pagina worden weergegeven, zijn Engelse lettertypen (de inhoud is nog steeds in het Chinees, ik bedoel de weergegeven lettertypewijzigingen).

In welke volgorde verkrijgt de browser de codering van het CSS-document?

Volgens de [1] CSS 2.1-specificatie moet de codering van een extern CSS-bestand worden bepaald op basis van de volgende prioriteiten:

1. De codering die is opgegeven door de parameter 'charset' van het veld 'Content-Type' in de HTTP-antwoordheader.

2. Stuklijst en/of codering gedefinieerd door @charset.

3.<link charset="">of andere metagegevens die door het koppelingsmechanisme worden verstrekt (indien aanwezig).

4. Introduceer de codering die is bepaald in de HTML van dit CSS-bestand of in een ander CSS-bestand (indien aanwezig).

5. Indien de codering in bovenstaande stappen niet kan worden bepaald, wordt ervan uitgegaan dat de codering UTF-8 is.


Stuur een methode om de codering uit BOM te halen (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; }
Softwareapplicatie: ontwikkeling en ontwerp van front-end-sjablonen; SEO-optimalisatie; Let op: Deze software is geen hackerprogramma en kan geen achtergrondgegevens downloaden!
Disclaimer: De dienst is bedoeld voor persoonlijke studie, onderzoek of waardering, maar ook voor andere niet-commerciële of non-profit doeleinden, maar moet tegelijkertijd voldoen aan de bepalingen van het auteursrecht en andere relevante wetten, en mag geen inbreuk maken op de wettelijke rechten van deze website en houders van gerelateerde rechten. De risico's die verbonden zijn aan het gebruik van de tools op deze site hebben niets te maken met deze software.
Copyright © 2019-2024 Rabbit Software. Alle rechten voorbehouden Guangdong ICP-nr. 19111427-2
Tutorial informatie Handleiding Website-onderwerpen