WEB开发网: AJAX实例入门70个流行的AJAX应用的演示和源码下AJAX+jsp无刷新验证码实例AJAX实例应用初体验:自动保存草稿用AJAX编写用户注册时的应用实例Ajax快速入门经典收藏:Ajax学习网址
赞助商链接
中资源
>> 最新文章
>> 赞助商
>> 热门文章
WEB开发网文章阅读

解决ajax获取页面直接显示乱码的方法

作者:未知 文章来源:WEB开发者 更新时间:2008-2-6 21:26:27
  • ajax(动态网站静态化)实例入门
  • 70个流行的ajax(动态网站静态化)应用的演示和源码下
  • ajax(动态网站静态化)+jsp(SUN企业级应用的首选)无刷新验证码实例
  • ajax(动态网站静态化)实例应用初体验:自动保存草稿
  • 用ajax(动态网站静态化)编写用户注册时的应用实例
  • ajax(动态网站静态化)快速入门
  • 经典收藏:ajax(动态网站静态化)学习网址大全
  • 节选:快速进入ajax(动态网站静态化)开发
  • ajax(动态网站静态化)框架,web ui 库 -- qooxdoo使
  • .net ajax(动态网站静态化)无刷新技术
 
    大家都知道,xml(标准化越来越近了)http在通信时采用的是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的编码那就根本不需要进行编码工作了。
浏览URL http://www.cncms.com.cn/ajax(动态网站静态化)/h396363.html

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  下一页

百度搜索中共有相关主题
[阅读:次] [返回上一页] [打 印]
  • 相关文章
  • 本类热门