首頁軟件教程浏覽器如何獲得css文檔編碼的?
浏覽器如何獲得css文檔編碼的?

浏覽器獲取css文檔編碼相對於獲取html文檔編碼要複雜多了,它可以設置編碼的地方有ReponseHeader的Content-type字段設置編碼,link標簽可以設置charset屬性也可以設置,還有css文檔也可以設置編碼,最後還有一個默認的編碼文檔。

影響

css文檔如果編碼識别錯誤,會有什麽影響?對於英文字符都能整常識别的,但是對中文字符會是顯示成亂碼,這個主要是使用了中文字體的,頁面顯示的中文字體是英文字體(内容還是中文,我是說顯示的字體變化)。

浏覽器是獲取css文檔編碼的順序是怎樣的呢?

根據 [1]? CSS 2.1 規範的描述,應按照以下優先級來確定一個外部CSS文件的編碼:

1.HTTP 響應頭中 "Content-Type" 字段的 "charset" 參數指定的編碼。

2.BOM 以及/或者 @charset 定義的編碼。

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優化;離線浏覽網頁。備注:本軟件不是黑客程序,不能下載後台數據!
免責聲明:服務用於個人學習、研究或欣賞,以及其他非商業性或非盈利性用途,但同時應遵守著作權法及其他相關法律的規定,不得侵犯本網站及相關權利人的合法權利,通過使用本站工具随之而來的風險與本軟件無關。
Copyright © 2019-2024 兔子軟件 All Rights Reserved 粵ICP備19111427號-2
教程資訊 用戶手冊 網站專題