各位高手帮我解决AJAX传输数据的中文乱码问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 18:26:42
在网站中注册用户时有无刷新检测用户名是否重名的功能
以下是前台的检测程序:
<script>
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}

function callServer() {
var u_name = document.getElementById("user").value;
if ((u_name == null) || (u_name == "")) return;
var url = "check.asp?name=" + escape(u_name);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}

function updatePage() {
if (xmlHttp.readyState < 4) {
username.innerHTML="正在检测用户名是否可用......";
}
if (xmlHttp.readyState == 4) {
var

你都说了的嘛 两边的编码格式不同,那你就改成相同的嘛
或者在后台页面中
Recordset1__MMColParam = Request.QueryString("name") 得到name之后就对其进行编码格式转换,我一直都用的jsp的,对asp不是很熟
在jsp中是这样来做的:
String name = request.getParameter("name");
name = new String(name.getBytes("8859_1"),"gb2312");

或者在后台文件的的接收数据之前,就先设置request的编码格式,jsp中是这样的
request.setCharacterEncoding("gb2312");
就ok了

你这是使用的get方式进行请求的,如果你用的是post方式的话,
就必须进行两次编码,一次解码...................