primeira páginaTutorial de softwareComo o navegador obtém a codificação do documento CSS?
Como o navegador obtém a codificação do documento CSS?

É muito mais complicado para o navegador obter a codificação do documento CSS do que obter a codificação do documento HTML. O local onde ele pode definir a codificação é o campo Content-type do ResponseHeader para definir a codificação. atributo charset e a codificação do documento CSS também podem ser definidos e, finalmente, um documento de codificação padrão.

Influência

Qual será o impacto se o erro de reconhecimento de codificação no documento CSS estiver correto? Os caracteres ingleses podem ser reconhecidos normalmente, mas os caracteres chineses serão exibidos como caracteres ilegíveis. Isso se deve principalmente ao uso de fontes chinesas. As fontes chinesas exibidas na página são fontes em inglês (o conteúdo ainda está em chinês, quero dizer, o exibido. alterações de fonte).

Em que ordem o navegador obtém a codificação do documento CSS?

De acordo com a especificação [1] CSS 2.1, a codificação de um arquivo CSS externo deve ser determinada de acordo com as seguintes prioridades:

1. A codificação especificada pelo parâmetro "charset" do campo "Content-Type" no cabeçalho da resposta HTTP.

2. BOM e/ou codificação definida por @charset.

3.<link charset="">ou outros metadados fornecidos pelo mecanismo de vinculação (se houver).

4. Introduza a codificação determinada no HTML deste arquivo CSS ou em outro arquivo CSS (se houver).

5. Se a codificação não puder ser determinada nas etapas acima, presume-se que a codificação seja UTF-8.


Envie um método para obter a codificação da 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; }
Aplicação de software: download de templates front-end; otimização de SEO; Nota: Este software não é um programa hacker e não pode baixar dados de segundo plano!
Isenção de responsabilidade: O serviço é para estudo pessoal, pesquisa ou apreciação, bem como outros fins não comerciais ou sem fins lucrativos, mas ao mesmo tempo deve cumprir as disposições da lei de direitos autorais e outras leis relevantes, e não deve infringir os direitos legais deste site e detentores de direitos relacionados Os riscos associados ao uso das ferramentas deste site não têm nada a ver com este software.
Copyright © 2019-2024 Rabbit Software Todos os direitos reservados Guangdong ICP nº 19111427-2
Informações do tutorial Manual do usuário Tópicos do site