Ajax返回中文乱码的解决方法

简介: 2007年07月09日 11:12 Ajax返回中文乱码的解决方法:一,通过VBS转换函数VBS转换函数:Function convertstr(vIn) strReturn = "" For i = 1 To LenB(vIn) ThisCharCode = AscB(Mi...
2007年07月09日 11:12
Ajax 返回 中文 乱码的解决方法:
一,通过VBS转换函数
VBS转换函数:
Function convertstr(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
convertstr = strReturn
End Function


// ajax处理
var http_request = false;
function send_request(url,obj){//初始化、指定处理函数、发送请求的函数
var obj=obj;
http_request = false; //开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType("text/html");//设定以gb2312编码识别数据
}
}else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e){
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange =function(){
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功 返回,开始处理信息
gb2utf8_data =http_request.responseBody;
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");
document.getElementById(obj).innerHTML=bytes2BSTR(http_request.responseBody);
//alert(bytes2BSTR(http_request.responseBody));
} else{ //页面不正常
document.getElementById(obj).innerHTML="发生错误!访问超时!"
}
}
}
http_request.open("POST",url, true);
http_request.send(null);
} // 处理 返回信息的函数


二.通过JS转换函数gb2utf8:

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(++ik=t.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=glbEncode[k]+t.substring(4);
}
gb2utf8_data = gb2utf8_char = null;
return unescape(t.join("%"));
}

用法和上面的一样,如:
document.getElementById(obj).innerHTML=gb2utf8(http_request.responseBody);

目录
相关文章
|
前端开发 JavaScript Java
JS中一个方法同时发送两个ajax请求出现报错问题的解决方法
JS中一个方法同时发送两个ajax请求出现报错问题的解决方法
251 0
JS中一个方法同时发送两个ajax请求出现报错问题的解决方法
|
Web App开发 前端开发 Java
SpringBoot 项目 ajax post 出现 400 Bad Request 错误 后台调试不进断点的解决方法
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcs_dn/article/details/80075212 在使用Ajax的时候,你可能遇到莫名其妙的的错误,这时你需要学会使用开发者工具来查看并定位、解决问题。
2266 0
|
Web App开发 JavaScript 前端开发
gdy
|
编解码 JavaScript 前端开发
jQuery Ajax传值给Servlet,在Servlet里Get接受参数乱码的解决方法
  最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如下: public void doGet(HttpServletRequest reque...
gdy
1704 0
|
JSON 前端开发 JavaScript
jquery ajax跨域的完美解决方法(jsonp方式)
ajax跨域请求的问题,JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式,接下来为大家详细介绍下客户端JQuery.ajax的调用代码     今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。
1572 0
|
Web App开发 JavaScript 前端开发
Ajax在IE浏览器会出现中文乱码解决办法
在AJAX浏览器来进行发送数据时,一般它所默认的都是UTF-8的编码. Ajax在IE浏览器会出现中文乱码的情况!解决办法如下 function showDiv(str){ document.
822 0
|
前端开发
bboss mvc ajax响应输出中文乱码解决方法
对于bboss mvc ajax请求响应出现的中文乱码问题,怎么解决?解决办法有两个,一个是直接在bboss-mvc.xml中的字符串转换插件StringHttpMessageConverter上通过responseCharset属性全局指定响应字符编码集,例如UTF-8或者GBK: 具体使用何种字符集取决于项目中采用的字符集。
839 0