|
初出茅庐

- 帖子
- 14
- 精华
- 0
- 积分
- 104
- 金卡
- 0 张
- 金币
- 84 个
|
楼主
大 中
小 发表于 2007-8-13 16:55 只看该作者
彻底解决火狐浏览器JS乱码问题
好像用火狐的用户越来越多,由于以前博客使用的JS文件都是在IE下测试的,现在在火狐浏览器下调用会出现乱码问题(访客列表所使用的JS文件),分析原因,在火狐这款所谓的广义绿色浏览器下,发现 <SCRIPT>中的charset设置并不起作用,火狐(Fire Fox)会根据页面的字符集解释JS文件,由于页面字符集与JS文件字符集不一致故会出现乱码。同时就算JS文件与页面字符集一致,但由于用户自己在浏览器中更改编码,同样也会出现乱码。
为彻底解决乱码问题,就要查找一种与编码无关的“字符集”,如今与字符集无关的编码就是UNICODE编码,UNICODE编码与ASC码一样,只不过ASC吗只包含英文,而UNICODE码包含几乎全球所有国家的文字huoh.org.cn。
由于访客列表使用的JS文件是用ASP自动生成的,故在ASP生成JS文件时,ASP读取数据库数据后需要将数据全部转换成UNICODE编码,函数如下:
Function URLenc(strEnc)
dim j,i
for i = 1 to len(strEnc)
char = mid(strEnc, i, 1)
j=ascw(char)
if j<0 then j=j+65536
if j > 128 then
URLenc= URLenc & "&#" & j & ";"
else
URLenc= URLenc & char
end if
next
End Function
如果使用Javascript,则字符串对象有内部函数直接转换:
function URLenc(strEnc){
var strR='';
for (var i=0; i strR += '&#' +strEnc.charCodeAt(i) + ';';
return strR;
}
|
|