첫 장소프트웨어 튜토리얼브라우저는 CSS 문서의 인코딩을 어떻게 얻나요?
브라우저는 CSS 문서의 인코딩을 어떻게 얻나요?

브라우저가 HTML 문서 인코딩을 얻는 것보다 CSS 문서 인코딩을 얻는 것이 훨씬 더 복잡합니다. 인코딩을 설정할 수 있는 곳은 ResponseHeader의 Content-type 필드로 인코딩을 설정할 수도 있습니다. charset 속성, CSS 문서 인코딩, 마지막으로 기본 인코딩 문서도 설정할 수 있습니다.

영향

CSS 문서의 인코딩 인식 오류가 올바른 경우 어떤 영향을 미치나요? 영어 문자는 정상적으로 인식이 되지만 한자는 깨져서 표시됩니다. 이는 주로 중국어 글꼴을 사용했기 때문입니다. 페이지에 표시되는 중국어 글꼴은 영어 글꼴입니다(내용은 여전히 ​​중국어로 표시됩니다. 글꼴 변경) .

브라우저는 CSS 문서의 인코딩을 어떤 순서로 얻나요?

[1] CSS 2.1 사양에 따르면 외부 CSS 파일의 인코딩은 다음 우선 순위에 따라 결정되어야 합니다.

1. HTTP 응답 헤더에 있는 "Content-Type" 필드의 "charset" 매개변수에 의해 지정된 인코딩입니다.

2. @charset으로 정의된 BOM 및/또는 인코딩.

3.<link charset="">또는 연결 메커니즘에서 제공하는 기타 메타데이터(있는 경우).

4. 이 CSS 파일의 HTML 또는 다른 CSS 파일(있는 경우)에서 결정된 인코딩을 도입합니다.

5. 위의 단계에서 인코딩을 결정할 수 없는 경우 인코딩은 UTF-8이라고 가정합니다.


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; }
소프트웨어 응용 프로그램: 프런트 엔드 템플릿 다운로드, SEO 최적화, 오프라인 웹 검색. 참고: 이 소프트웨어는 해커 프로그램이 아니므로 배경 데이터를 다운로드할 수 없습니다!
면책조항: 본 서비스는 개인적인 연구, 조사, 감상 및 기타 비상업적, 비영리적 목적을 위한 것이지만, 동시에 저작권법 및 기타 관련법의 조항을 준수해야 하며, 저작권법을 침해해서는 안 됩니다. 이 웹사이트 및 관련 권리 보유자의 법적 권리 이 사이트의 도구 사용과 관련된 위험은 이 소프트웨어와 관련이 없습니다.
저작권 © 2019-2024 토끼 소프트웨어 판권 소유 광동 ICP 번호 19111427-2
튜토리얼 정보 사용자 매뉴얼 웹사이트 주제