zoukankan      html  css  js  c++  java
  • 为什么乱码:<meta http-equiv="content-type">前的非ANSI字符

    为什么乱码:<meta http-equiv="content-type">前的非ANSI字符

    浏览器检测网页字符集的默认顺序

    浏览器的网页字符集检测顺序通常是:

    1. charset parameter in HTTP Content-type header.
    2. <meta http-equiv="content-type"> element in the <head> of a web page for HTML documents.
    3. BOM(Byte Order Mark).
    4. Auto-detect the character encoding as a last resort.

    注解一:HTTP Content-Type header 如果指定了 charset 的话,优先级高于 HTML 文档里<meta http-equiv="content-type">中的charset声明

    注解二:如果HTTP Content-Type Header没有指定 charset ,而html文档的<meta http-equiv="content-type">之前有非ANSI字符,有可能此meta标签就不会解析,切记,2005年的Blogger.com就曾出现过此问题。如下图所示,此meta标签保持在title之前是个好习惯,但下图中的绿色字体中文注释会导致部分浏览器不再继续检测字符集:

    http://images.cnblogs.com/cnblogs_com/zhengyun_ustc/255879/o_TM%E6%88%AA%E5%9B%BE%E6%9C%AA%E5%91%BD%E5%90%8D.png  

    注解三:第二步后,如果还没有明确指定字符集,那么浏览器就暂时采用默认字符集。如IE中文版的默认值是GB2312,Firefox中文版的默认值是GBK。

    一些浏览器(如IE内核低版本浏览器)因meta之前有中文导致无法解析,会用默认字符集GB2312来解析该网页,于是渲染之后你看到的就是这种乱码:

     http://images.cnblogs.com/cnblogs_com/zhengyun_ustc/255879/o_TM%E6%88%AA%E5%9B%BE%E6%9C%AA%E5%91%BD%E5%90%8D2.png

    即,当你能看到明显是乱码的汉字或方块字排列,八成是浏览器把UTF-8文档当成GB2312解析了。

  • 相关阅读:
    hdu 1524
    hdu 1536
    转载一篇博弈博弈入门的好文章
    nim 博弈
    WPF 从Main函数启动
    C# map network drive sample
    Predicate 学习
    WPF 绑定到附加属性 绑定到只读属性
    WPF 带有watermark的文本输入框
    使用Windows服务发布WCF服务
  • 原文地址:https://www.cnblogs.com/daishuguang/p/4184703.html
Copyright © 2011-2022 走看看