asp+ajax解决中文乱码问题

 在ajax程序要调用的asp程序中加入如下代码:
Response.ContentType = "text/html"
Response.Charset = "GB2312"   '解决乱码问题

示例:
1.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="JavaScript" type="text/JavaScript">
function clearDynaList(oList){

 for (var i = oList.options.length; i >= 0; i--){
  oList.options[i] = null;
 }
 
 oList.selectedIndex = -1;
}

var xmlHttp = false;
 if (window.ActiveXObject) {
  xmlHttp = new ActiveXObject("MsXml2.XmlHttp");
 } else {
  xmlHttp = new XMLHttpRequest();
 }

function callServer(prov1,prov2) {
 
 // var prov2 = document.getElementById("prov2").value;
 // var oList2 = document.forms[form2].elements[prov2];   为何不能引用元素啊?
 
  var url = "getCity.asp?prov1=" + escape(prov1)+"&prov2="+prov2;
  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updatePage;
  xmlHttp.send(null);
}


function updatePage() {
if (xmlHttp.readyState != 4)
{loader.style.display='';
}
  if (xmlHttp.readyState == 4)   //4  表示就绪
  {
loader.style.display='none';
var prov2str1=xmlHttp.responseText;  //返回值,应该是用,隔开的字符串
//alert(prov2str1);
var prov2str=prov2str1.split(",");
//alert(prov2str[1] + prov2str.length);
var pform=eval("document.form1."+prov2str[0]);
//alert(pform);
   clearDynaList(pform);   //清空选择框

pform.options[0] = new Option("-请选择-","");   //张勇
 for (var i = 2; i < prov2str.length+1; i= i +1)
 {
   pform.options[i-2] = new Option(prov2str[i-1], prov2str[i-1]);
  }
   pform.selectedIndex = 0;
  }
}
</script>

</head>

<body>
<div id="loader" style="display:none">正在载入</div>
<form name="form1" method="post" action="">
  <p>&nbsp;</p>
  <p> 省
    <select name="prov1" id="prov1" onChange="callServer(this.value,'prov2')">
    <option value="340000" >安徽省</option>
    <option value="820000">澳门特别行政区</option>
    <option value="110000">北京市</option>
    <option value="350000">福建省</option>
    <option value="620000">甘肃省</option>
    <option value="440000">广东省</option>
    <option value="450000">广西壮族自治区</option>
    <option value="520000">贵州省</option>
    <option value="460000">海南省</option>
    <option value="130000">河北省</option>
    <option value="410000">河南省</option>
    <option value="230000">黑龙江省</option>
    <option value="420000">湖北省</option>
    <option value="430000">湖南省</option>
    <option value="220000">吉林省</option>
    <option value="320000" >江苏省</option>
    <option value="360000">江西省</option>
    <option value="210000">辽宁省</option>
    <option value="150000">内蒙古自治区</option>
    <option value="640000">宁夏回族自治区</option>
    <option value="630000">青海省</option>
    <option value="370000">山东省</option>
    <option value="140000">山西省</option>
    <option value="610000">陕西省</option>
    <option value="310000">上海市</option>
    <option value="510000">四川省</option>
    <option value="710000">台湾省</option>
    <option value="120000">天津市</option>
    <option value="540000">西藏自治区</option>
    <option value="810000">香港特别行政区</option>
    <option value="650000">新疆维吾尔自治区</option>
    <option value="530000">云南省</option>
    <option value="330000">浙江省</option>
    <option value="500000">重庆市</option>
 </select>
  </p>
  <p> 市
    <select name="prov2" id="prov2">
    </select>
  </p>

  <p>第二个:</p>
  <p> 省
    <select name="select" id="select" onChange="callServer(this.value,'select2')">
      <option value="340000" >安徽省</option>
      <option value="820000">澳门特别行政区</option>
      <option value="110000">北京市</option>
      <option value="350000">福建省</option>
      <option value="620000">甘肃省</option>
      <option value="440000">广东省</option>
      <option value="450000">广西壮族自治区</option>
      <option value="520000">贵州省</option>
      <option value="460000">海南省</option>
      <option value="130000">河北省</option>
      <option value="410000">河南省</option>
      <option value="230000">黑龙江省</option>
      <option value="420000">湖北省</option>
      <option value="430000">湖南省</option>
      <option value="220000">吉林省</option>
      <option value="320000" >江苏省</option>
      <option value="360000">江西省</option>
      <option value="210000">辽宁省</option>
      <option value="150000">内蒙古自治区</option>
      <option value="640000">宁夏回族自治区</option>
      <option value="630000">青海省</option>
      <option value="370000">山东省</option>
      <option value="140000">山西省</option>
      <option value="610000">陕西省</option>
      <option value="310000">上海市</option>
      <option value="510000">四川省</option>
      <option value="710000">台湾省</option>
      <option value="120000">天津市</option>
      <option value="540000">西藏自治区</option>
      <option value="810000">香港特别行政区</option>
      <option value="650000">新疆维吾尔自治区</option>
      <option value="530000">云南省</option>
      <option value="330000">浙江省</option>
      <option value="500000">重庆市</option>
    </select>
  </p>
  <p> 市
    <select name="select2" id="select2">
    </select>
  </p>

  <p>第三个:</p>
  <p> 省
    <select name="select3" id="select3" onChange="callServer(this.value,'select4')">
      <option value="340000" >安徽省</option>
      <option value="820000">澳门特别行政区</option>
      <option value="110000">北京市</option>
      <option value="350000">福建省</option>
      <option value="620000">甘肃省</option>
      <option value="440000">广东省</option>
      <option value="450000">广西壮族自治区</option>
      <option value="520000">贵州省</option>
      <option value="460000">海南省</option>
      <option value="130000">河北省</option>
      <option value="410000">河南省</option>
      <option value="230000">黑龙江省</option>
      <option value="420000">湖北省</option>
      <option value="430000">湖南省</option>
      <option value="220000">吉林省</option>
      <option value="320000" >江苏省</option>
      <option value="360000">江西省</option>
      <option value="210000">辽宁省</option>
      <option value="150000">内蒙古自治区</option>
      <option value="640000">宁夏回族自治区</option>
      <option value="630000">青海省</option>
      <option value="370000">山东省</option>
      <option value="140000">山西省</option>
      <option value="610000">陕西省</option>
      <option value="310000">上海市</option>
      <option value="510000">四川省</option>
      <option value="710000">台湾省</option>
      <option value="120000">天津市</option>
      <option value="540000">西藏自治区</option>
      <option value="810000">香港特别行政区</option>
      <option value="650000">新疆维吾尔自治区</option>
      <option value="530000">云南省</option>
      <option value="330000">浙江省</option>
      <option value="500000">重庆市</option>
    </select>
  </p>
  <p> 市
    <select name="select4" id="select4">
    </select>
  </p>
</form>
</body>
</html>

getCity.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.ContentType = "text/html"
Response.Charset = "GB2312"   '解决乱码问题

MM_city_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.MapPath("areapro.mdb")
If (Request.QueryString("prov1") <> "") Then
  rs__MMColParam = Request.QueryString("prov1")
End If

Dim rs
Dim rs_numRows

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_city_STRING
rs.Source = "SELECT city FROM city WHERE provinceID = '" + Replace(rs__MMColParam, "'", "''") + "' ORDER BY city ASC"
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()
city=request("prov2")&","
while not rs.eof
city=city&trim(rs("city"))&","
rs.movenext
wend
'要把最后一个","去掉
if right(city,1)="," then
city=left(city,len(city)-1)
end if
response.Write(city)
rs.Close()
Set rs = Nothing
%>
用到的数据库文件



原文链接: http://blog.csdn.net/vince6799/article/details/1341441

你可能感兴趣的:(asp+ajax解决中文乱码问题)