文章标签 ‘utf-8’

写在前面:

同事调试页面的时候发现如果IE没有选择自动编码,那么utf-8的有些页面会在IE下显示空白,即使你习惯性的加入了:<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

产生原因:

utf-8用3个字节表示一个汉字,而普通的gb2312或big5是2个。而恰巧IE在解析网页编码时以HTML内的标签为优先,然后再会解析Header内的内容,但FF等其他浏览器相反。正因为这样,当Title里有奇数个全角字符时,IE把utf-8当作两个字节解析时出现半个汉字的情况,这时该半个汉字会和</title>的<结合成一个乱码字,导致IE无法读完<title>部分,使整个页面为空白输出。

解决方案:

实际上很简单,把<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />放在<title></title>的前面即可。

他们如何:

Google:

<meta http-equiv=content-type content=”text/html; charset=UTF-8″>
<title>这里是中文 – Google 搜索</title>

Yahoo:

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
<title>这里是中文_雅虎网页搜索</title>

2010年9月13日14:13 | 1 条评论
分类: 前端开发
标签: , ,

uft-8会引起没有指定编码的js输出中文的时候出现乱码

例如:

<script>

alert(‘我的职业生涯’);

</script>

那么必须要进行必要的处理,方法如下:

如果web application的编码规则是utf-8,如网页头中的:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
那么js文件中如果有中文输出就会出现乱码,解决此个问题可在引用javascript输出的地方加上charset="gb2312" 或 charset="big5"(假设输出的是Big5繁体字)。

例如:
<script type="text/javascript" language="javascript" src="scripts/output.js" charset="gb2312"></script>

PS:另一种解决方法是把js文件保存为utf-8编码。
===========================================
在js文件加:document.charset="UTF-8"

2009年3月20日18:50 | 没有评论
分类: 前端开发
标签: , ,