日期:2014-05-17  浏览次数:20833 次

asp + jquery ajax 参数为中文传递过去接受成乱码
<script type="text/javascript">
function reselect(){
  nkeyv=$("#nkey").val();
  $("#retxt").html("<font color=green>...正在查询...</font>");
  $.post("sk_ajax.asp",{nkey:nkeyv},function(result){
  $("#retxt").html(result);
});

}
</script>

这是调用的Jquery部分


<% 
  Response.Charset="gb2312"
  Response.AddHeader "Pragma","no-cache"
  Response.AddHeader "cache-ctrol","no-cache"
  Session.CodePage=936 
%> 
<!--#include file="date_conn.asp"-->
<%
nkey=request("nkey")
if nkey="" then
response.Write "..<img src='loading.gif'>等待相关操作<img src='loading.gif'>.."
response.End()
end if
sck="select * from sck_data where timu like '%"&nkey&"%' order by cknums desc,id desc"
set ck=server.CreateObject("adodb.recordset")
ck.open sck,conn,1,3
if ck.eof then
response.Write "<font color=red><img src='nodata.gif'>题库中暂无 <font color=000><b>"&nkey&"</b></font> 的相关信息,请等待更新数据库..</font>"
response.End()
else
...
%>

这是接受处理部分


接受到的参数 nkey 的值为中文时 输出的时候就成了乱码

求高人指点指点 谢谢


------解决方案--------------------
encodeURIComponent
------解决方案--------------------
1. {nkey:escape(nkeyv)}
2. sql = ".... '%" & replace(nkey, "'", "''") & "%..."
3. sk_ajax.asp charset用utf-8,并且 sk_ajax.asp文件本身要用utf-8编码(记事本打开-另存为-编码选utf-8)
------解决方案--------------------
jquery不支持gb2312,非要用的话,中文必须加密后再进行传输。