unang pahinaTutorial sa softwarePaano nakukuha ng browser ang pag-encode ng CSS na dokumento?
Paano nakukuha ng browser ang pag-encode ng CSS na dokumento?

Mas kumplikado para sa browser na makuha ang pag-encode ng dokumento ng CSS kaysa sa pagkuha ng pag-encode ng HTML na dokumento charset attribute, at ang CSS na dokumento ay maaari ding itakda, at sa wakas ay isang default na dokumento sa pag-encode.

Impluwensiya

Ano ang magiging epekto kung mali ang pagkaka-encode ng css document? Ang mga character na Ingles ay maaaring makilala nang normal, ngunit ang mga character na Tsino ay ipapakita bilang mga magulo na character Ito ay higit sa lahat dahil sa paggamit ng mga Chinese na font Ang mga Chinese na font na ipinapakita sa pahina ay mga English na font (ang nilalaman ay nasa Chinese pa rin, ang ibig kong sabihin ay ang ipinapakita pagbabago ng font).

Sa anong pagkakasunud-sunod nakukuha ng browser ang pag-encode ng dokumento ng CSS?

Ayon sa [1] CSS 2.1 na detalye, ang pag-encode ng isang panlabas na CSS file ay dapat matukoy ayon sa mga sumusunod na priyoridad:

1. Ang pag-encode na tinukoy ng "charset" na parameter ng field na "Content-Type" sa header ng tugon ng HTTP.

2. BOM at/o pag-encode na tinukoy ng @charset.

3.<link charset="">o iba pang metadata na ibinigay ng mekanismo ng pag-link (kung mayroon man).

4. Ipakilala ang encoding na tinutukoy sa HTML ng CSS file na ito o sa isa pang CSS file (kung mayroon man).

5. Kung hindi matukoy ang pag-encode sa mga hakbang sa itaas, ipinapalagay na ang pag-encode ay UTF-8.


Magpadala ng paraan para makuha ang encoding mula sa 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; }
Application ng software: pag-download ng template sa harapan at pag-optimize ng SEO; Tandaan: Ang software na ito ay hindi isang hacker program at hindi maaaring mag-download ng background data!
Disclaimer: Ang serbisyo ay para sa personal na pag-aaral, pagsasaliksik o pagpapahalaga, gayundin sa iba pang hindi pangkomersyal o non-profit na layunin, ngunit sa parehong oras dapat itong sumunod sa mga probisyon ng batas sa copyright at iba pang nauugnay na batas, at hindi dapat lumabag sa mga legal na karapatan ng website na ito at mga kaugnay na may hawak ng karapatan Ang mga panganib na nauugnay sa paggamit ng mga tool sa site na ito ay walang kinalaman sa software na ito.
Copyright © 2019-2024 Rabbit Software All Rights Reserved Guangdong ICP No. 19111427-2
Impormasyon sa tutorial User manual Mga paksa sa website