page de gardeTutoriel logicielComment le navigateur obtient-il l'encodage du document CSS ?
Comment le navigateur obtient-il l'encodage du document CSS ?

Il est beaucoup plus compliqué pour le navigateur d'obtenir l'encodage du document CSS que d'obtenir l'encodage du document HTML. L'endroit où il peut définir l'encodage est le champ Content-type de ResponseHeader pour définir l'encodage. L'attribut charset, et le document CSS peuvent également être définis, et enfin un document de codage par défaut.

Influence

Quel sera l'impact si le document CSS est mal encodé ? Les caractères anglais peuvent être reconnus normalement, mais les caractères chinois seront affichés sous forme de caractères tronqués. Cela est principalement dû à l'utilisation de polices chinoises. Les polices chinoises affichées sur la page sont des polices anglaises (le contenu est toujours en chinois, je veux dire celui affiché). changements de police) .

Dans quel ordre le navigateur obtient-il l'encodage du document CSS ?

Selon la spécification [1] CSS 2.1, l'encodage d'un fichier CSS externe doit être déterminé selon les priorités suivantes :

1. L'encodage spécifié par le paramètre "charset" du champ "Content-Type" dans l'en-tête de réponse HTTP.

2. BOM et/ou encodage défini par @charset.

3.<link charset="">ou d'autres métadonnées fournies par le mécanisme de liaison (le cas échéant).

4. Introduisez l'encodage déterminé dans le HTML de ce fichier CSS ou d'un autre fichier CSS (s'il en existe un).

5. Si le codage ne peut pas être déterminé au cours des étapes ci-dessus, on suppose que le codage est UTF-8.


Envoyez une méthode pour obtenir l'encodage de la nomenclature (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; }
Application logicielle : téléchargement de modèles front-end ; développement et conception ; navigation Web hors ligne. Remarque : ce logiciel n'est pas un programme de piratage et ne peut pas télécharger de données en arrière-plan !
Avis de non-responsabilité : le service est destiné à l'étude personnelle, à la recherche ou à l'appréciation, ainsi qu'à d'autres fins non commerciales ou à but non lucratif, mais en même temps, il doit être conforme aux dispositions de la loi sur le droit d'auteur et aux autres lois pertinentes, et ne doit pas enfreindre les droits légaux de ce site Web et des titulaires de droits associés. Les risques associés à l'utilisation des outils de ce site n'ont rien à voir avec ce logiciel.
Copyright © 2019-2024 Rabbit Software Tous droits réservés PIC du Guangdong n° 19111427-2
Informations sur le didacticiel Manuel de l'Utilisateur Thèmes du site Web