pierwsza stronaSamouczek oprogramowaniaW jaki sposób przeglądarka uzyskuje kodowanie dokumentu CSS?
W jaki sposób przeglądarka uzyskuje kodowanie dokumentu CSS?

Uzyskanie kodowania dokumentu CSS przez przeglądarkę jest znacznie bardziej skomplikowane niż uzyskanie kodowania dokumentu HTML. Miejscem, w którym może ustawić kodowanie, jest pole Content-type w ResponseHeader, w którym można ustawić kodowanie charset, można również ustawić kodowanie dokumentu CSS, a na koniec domyślny dokument kodujący.

Wpływ

Jaki będzie wpływ, jeśli dokument CSS zostanie nieprawidłowo zakodowany? Znaki angielskie można normalnie rozpoznać, ale znaki chińskie będą wyświetlane jako zniekształcone. Dzieje się tak głównie ze względu na użycie chińskich czcionek. Chińskie czcionki wyświetlane na stronie są czcionkami angielskimi (treść jest nadal w języku chińskim, mam na myśli wyświetlaną czcionkę). zmiany czcionki).

W jakiej kolejności przeglądarka uzyskuje kodowanie dokumentu CSS?

Zgodnie ze specyfikacją [1] CSS 2.1, kodowanie zewnętrznego pliku CSS powinno być określone według następujących priorytetów:

1. Kodowanie określone przez parametr „charset” pola „Content-Type” w nagłówku odpowiedzi HTTP.

2. BOM i/lub kodowanie zdefiniowane przez @charset.

3.<link charset="">lub inne metadane dostarczone przez mechanizm łączenia (jeśli istnieje).

4. Podaj kodowanie określone w kodzie HTML tego pliku CSS lub innego pliku CSS (jeśli taki istnieje).

5. Jeżeli w powyższych krokach nie można określić kodowania, przyjmuje się, że jest to kodowanie UTF-8.


Wyślij metodę, aby uzyskać kodowanie z 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; }
Aplikacja: pobieranie szablonów front-end; optymalizacja SEO; przeglądanie stron internetowych w trybie offline; Uwaga: to oprogramowanie nie jest programem hakerskim i nie może pobierać danych w tle!
Zastrzeżenie: Usługa służy do osobistych studiów, badań lub oceny, a także do innych celów niekomercyjnych lub non-profit, ale jednocześnie powinna być zgodna z przepisami prawa autorskiego i innymi właściwymi przepisami i nie może naruszać praw autorskich prawa do tej witryny i posiadaczy praw pokrewnych. Ryzyko związane z korzystaniem z narzędzi dostępnych na tej stronie nie ma nic wspólnego z tym oprogramowaniem.
Copyright © 2019-2024 Rabbit Software Wszelkie prawa zastrzeżone Guangdong ICP nr 19111427-2
Informacje o samouczku Instrukcja obsługi Tematyka serwisu