ajax和asp使用出现中文乱码

来源:百度知道 编辑:UC知道 时间:2024/04/29 07:00:51
index.asp
***********
<script type="text/javascript">
var xmlhttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");

}
else if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();

}

}
function startRequest(name){
createXMLHttpRequest();
xmlhttp.onreadystatechange=dengmingyong;
var url="cl.asp?name3="+name;
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-encoded");
xmlhttp.send(null);

}
function dengmingyong()
{
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
{
var text=xmlhttp.responseText;
deng.innerHTML=text;
}
}
}
</script>
<form action="" name="f

var url="cl.asp?name3="+name;
这句改成下面的就OK了
var url="cl.asp?name3="+escape(name);

var url="cl.asp?name3="+name;
改成 var url="cl.asp?name3="+escape(name);
给 name 编码是防止中文字符乱码,其它就不会

cl.asp 也需要改,否则返回的还是乱码,还要清除缓存,否则第一次返回正常,再重试返回的还是第一次的结果

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.Charset="gb2312"
response.cachecontrol="no-cache"
response.addHeader "pragma","no-cache"
response.expires=-1
response.expiresAbsolute=now-1

name1="dengmingyong"
name2=unescape(request.Form ("name3"))
if name1=name2 then
response.Write "用户名以被注册"
else
response.write "该用户名可以注册"
end if
%>