2009-6-25 查看次数:0
这几天网站改版,朋友留言说用IE8浏览器文章都打不开,全部是空白页,多亏这位朋友提醒,我都没发现,在这里谢谢朋友的提醒。
我考虑网页内容应该是一定有的,只是没有显示出来,导致IE8浏览器不能显示内容的原因可能是不能正确解析网页的编码,因为我全站采用UTF-8编码,以前碰到过类似问题,所以打开网页源码一看,果然声明UTF-8编码格式的meta 没有放在前面,真是太粗心大意了。
<link rel="stylesheet" href="/img/style.css" type="text/css" media="screen" />
<title>这里是文章标题 - http://www.goodtext.org/</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head><body>
声明UTF-8编码格式的
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
放在了
<title>这里是文章标题 - http://www.goodtext.org/</title>
的后面,由于UTF-8编码3个字节表示一个汉子,而GB2312或BIG5是两个字节表示一个汉子。
浏览器解析输出<title> </title>的内容时,如果在</title>前有奇数全角字符时,IE把UTF-8当作两个字节解析时出现半个汉字的情况,这时该半个汉字会和</title>的<结合成一个乱码字,导致IE无法读完<title>部分,使整个页面为空百输出。
如果察看源文件的话,会发现实际上整个页面全部已经输出了。
什么是UTF-8编码
UTF8 是(UNICODE八位交换格式)的简称,UNICODE是国际标准,也是ISO标准10646的等价标准。UNICODE编码的文件中可以同时对几乎所有地球上已知的文字字符进行书写和表示,而且已经是UNIX/LINUX世界的默认编码标准。
UTF-8是世界通用的语言编码,UTF-8的推广要归功于Google的应用,以及Blog开发者。而如果用Windows XP英文版的IE6.0浏览gb2312语言编码的网页,则会提示是否安装语言包。因此,可能会失去很多的国外浏览者。
UTF-8编码的好处
网页使用UTF-8编码的好处是,无论您的操作系统的使用语言是简体中文(GB2312字符集)、繁体中文(BIG5字符集)或者是朝鲜文、日文、法文、德文、俄文、阿拉伯文、希伯来文、西班牙文、葡萄牙文等各种语言文字,您在使用这些语言文字,都可以正常显示在网页中,其它任何人浏览时都会正常显示,不会有乱码,不会有重码和字符冲突,不需要调整页面的语言编码设置即可正常浏览,多种语言字符可以同时共存在页面上,所以为了网站的通用性起见,用UTF8编码是更好的选择。
解决这个问题不难,只要
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
放在
<title>这里是文章标题 - http://www.goodtext.org/</title>
的前面问题就解决了。
以前也谈过UTF-8乱码的问题,这里就不啰嗦了。