分享、学习、提高
2007/01/23 09:32
文章作者:Enjoy 转载请注明原文链接。
最近做站用的是UTF-8编码,某htm登录页面,其中代码为
<title>管理员登录</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
每次打开,均是一片空白,查看右键-编码,显示是GB2312。要手功改为UTF-8后才能正常显示页面。在FF下是可以正常显示的。
而其它php页面,因为在头部指定了@header('Content-Type: text/html; charset=utf-8');倒是可以正常显示。只指定meta对IE6似乎无效?

和同事研究了一下,发现原来要这样:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>管理员登录</title>

也就是把meta编码放在title之前,这样在IE下才会先读取meta指定的编码。

引用


在<head></head>之前,把"Content-Type"放在最前面,便可以解決这样的问题了。

原因:

IE 解析网页编码时是 HTML 內的标识优先的,然后是 HTTP header ;而mozilla 系列的浏览器刚刚好相反。

一般情况在,很多人是把<title></title>排在最前面,并且在title中就出现了UTF-8中文,这样, IE在解析时,就先遇到UTF-8,不往下解析了,因此必须把如果把meta放在UTF-8出现之前,这样IE才能判断这个网页是以UTF-8编码的。

总之:
无论是 PHP、JSP、ASP 或其他动态网页的脚本语言,如果需要作编码设定,最好放在最前面。

来自:解决web服务器各种应用的乱码问题



参考Blog:UTF-8字符集网页在IE上会显示空白问题的解决方案
发表评论
表情
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写