首页软件教程浏览器如何获得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#):

``` c# /// /// 从字节流判断编码(返回null是不能判断出编码) /// /// 输入字节流 /// 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-2021 小飞兔软件 All Rights Reserved 粤ICP备19111427号-2
教程资讯 在线文档 网站专题