前的非ANSI字符" type="hidden"/>

為什么亂碼: 前的非ANSI字符


2011/12/31

瀏覽器檢測網頁字符集的默認順序

瀏覽器的網頁字符集檢測順序通常是:

  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解析了。

 

我的推特流:

1、

《網曝3家銀行過億用戶數據泄露》——人們很快發現曝光用戶密碼泄漏有助於喚醒休眠用戶,開心啊,年終總結報告這下好寫了。

2、

張俊林博士的新書《這就是搜索引擎:核心技術詳解 http://t.cn/Sfm4uh 》,亞馬遜價格39.60元,光看目錄就讓人眼饞,不同緯度的N多算法。比如第6章的鏈接分析。

3、

說個段子,N年前的一天,我坐俊林旁邊辦公,想查一下現在主流的文章去重算法有哪些,於是Google了一把,翻了若干文獻后,突然看到一篇極精彩的,深入淺出,評語精妙,心想:人才啊,趕緊看看這誰寫的...翻到最后,原來是張俊林。

4、

贈圖1枚:

http://ww2.sinaimg.cn/large/3f7544d5tw1dob2crocs6j.jpg

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM