编写gbk到utf转码的javascript方法,解决ajax获取页面直接显示乱码的方法
2013-01-06 08:59
701 查看
大家都知道,xmlhttp在通信时采用的是utf编码,而国内很多网页的信息都是采用gbk编码,所以当直接通过ajax去连接网页,并将获取到的信息直接显示的话就会出现乱码的现象,有些时候无法改变服务器端网页的编码(例如获取别的网站的天气预报信息),在这种时候就只能在客户端通过js做编码的工作了.
下面这段js就是用于将服务器端返回的gbk编码字符串转换为utf编码字符串:
function gb2utf8(data){
var glbEncode = [];
gb2utf8_data = data;
execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript");
var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
t=t.split("@");
var i=0,j=t.length,k;
while(++i<j) {
k=t[i].substring(0,4);
if(!glbEncode[k]) {
gb2utf8_char = eval("0x"+k);
execScript("gb2utf8_char = Chr(gb2utf8_char)", "VBScript");
glbEncode[k]=escape(gb2utf8_char).substring(1,6);
}
t[i]=glbEncode[k]+t[i].substring(4);
}
gb2utf8_data = gb2utf8_char = null;
return unescape(t.join("%")); }
有了这段代码后,就可以直接对返回的网页内容进行编码了:
var response=gb2utf8(response.responseBody);
经过这样的转码后所获得的页面内容就不会有乱码现象了;
当然,如果服务器端页面采用的是utf-8的编码那就根本不需要进行编码工作了。
下面这段js就是用于将服务器端返回的gbk编码字符串转换为utf编码字符串:
function gb2utf8(data){
var glbEncode = [];
gb2utf8_data = data;
execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript");
var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
t=t.split("@");
var i=0,j=t.length,k;
while(++i<j) {
k=t[i].substring(0,4);
if(!glbEncode[k]) {
gb2utf8_char = eval("0x"+k);
execScript("gb2utf8_char = Chr(gb2utf8_char)", "VBScript");
glbEncode[k]=escape(gb2utf8_char).substring(1,6);
}
t[i]=glbEncode[k]+t[i].substring(4);
}
gb2utf8_data = gb2utf8_char = null;
return unescape(t.join("%")); }
有了这段代码后,就可以直接对返回的网页内容进行编码了:
var response=gb2utf8(response.responseBody);
经过这样的转码后所获得的页面内容就不会有乱码现象了;
当然,如果服务器端页面采用的是utf-8的编码那就根本不需要进行编码工作了。
相关文章推荐
- 解决ajax获取页面直接显示乱码的方法
- 备忘:解决ajax获取页面直接显示乱码的方法 [摘]
- 页面编码为UTF-8的项目中servlet中文显示乱码的解决方法
- utf-8页面调用gb2312页面的js显示乱码的解决方法
- 使用CInternetSession获取utf-8页面中文乱码问题解决方法
- 使用CInternetSession获取utf-8页面中文乱码问题解决方法
- awstat挂载IP显示补丁之后乱码的解决办法. utf-8和gbk的转码问题.
- javascript获取超链接传递的参数,此方法亦能解决2个通过js超链页面传递参数的乱码问题
- jsp获取JavaScript生成的中文cookie出现乱码问题解决方法
- 解决EditPlus在设置了UTF-8之后,编写的HTML页面仍出现汉字乱码问题
- 解决utf-8编码下 echo 弹出javascript alert中文乱码解决方法
- 关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
- 1 用最原始的方法解决乱码问题---直接手动转码
- ASP页面显示乱码解决方法/ASP设置编码
- 关于tomcat显示中文页面乱码的解决方法
- js传汉字在UTF-8标准的JSP页面中乱码的解决方法
- javascript通过url向jsp页面传递中文参数乱码解决方法
- Dreamweaver采用utf-8制作页面,到.net显示乱码问题解决
- Servlet从上一个页面获取参数(中文乱码解决方法)
- ThinkPHP打开验证码页面显示乱码的解决方法