asp中gb2312编码如何用ajax

来源:互联网 发布:美人一笑也倾城网络剧 编辑:程序博客网 时间:2024/06/01 07:42

最开始我文件用的是gb2312,数据库sql server2005.用ajax的时候就出了问题。

1:我把所有有关数据设置成了英文格式。系统可以正常使用

后面老师要求用utf-8编码

2:

将所有页面编码改为utf-8:首先我是在Dreamweaver中,设置站点,将utf-8替换为GB2312,再用记事本打开,另存编码为ASNI,替换。

这种情况下:系统可以正常使用,也可使用汉字

最后老师又要求用GB2312编码

3:我就使用了escape和UnEscape。

ajax文件:index.asp中:

<script type="text/javascript">
function doLogin() {
var loginName = $('#loginName').val();
var password = $('#password').val();
var loginName=escape(loginName); 
var password=escape(password); 
if (loginName == '' || password == '') {
alert('登录名和密码都必须输入!');
return;
}

$.ajax({
type : "post",
url:"doLogin.asp",
contentType: "application/x-www-form-urlencoded; charset=GB2312", 


dataType : 'text',
data : {
'login_name' : loginName,
'pwd' : password
},
success : function(data, textStatus){
if (data == 'success') {
 
location.href = 'system/main.asp';
} else {
alert('登录名密码不正确,或账号已被禁用!');
}
},
error : function() {
alert('请求数据失败!');
}
});
}

在dologin.aso中:

<%
dim login_name
dim pwd
 
 
login_name= request.Form("login_name")
pwd = request.Form("pwd")
   
       login_name=UnEscape(login_name)
         pwd=UnEscape(pwd)
   
set rs = conn.Execute("select * from users where login_name='" & login_name & "' and pwd='" & pwd & "' and shenfen=0 and zt=1")

' 定义变量 result 存放查询结果, 是否有匹配的用户数据
dim result
result = ( NOT rs.eof )

' 关闭连接
rs.close
conn.close

' 释放资源
set rs = nothing
if result then
'  有匹配的用户名和密码
' 将用户信息保存在session里, 以便后续判断是否登录
Session("name") =login_name
' 自动跳转到文章列表
response.Write("success")
  else 
  response.Write("failure")
  end if
%>

简单来说:

就是在ajax请求页面加上:var loginName=escape(loginName); 
var password=escape(password); 

处理页面加上   login_name=UnEscape(login_name)
         pwd=UnEscape(pwd)

就可以了。

0 0
原创粉丝点击