利用ajax不刷新注册,输入中文的时候就出现乱码

renzaijiang 2009-06-05 01:57:11
现在问题是如果用中文,保存到数据库中去的是乱码,返回的注册成功4个字也是乱码。
主页是设置为<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

register.js
*************************************************************************************
var xmlHttp;
function createXmlHttpRequest(){
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}

function createRegisterString(){
var userName=document.getElementById("userName").value;
var pwd=document.getElementById("pwd").value;
var email=document.getElementById("email").value;
var queryString="userName="+userName+"&password="+pwd+"&email="+email;
return queryString;
}

function doRegisterUsingPost()
{
createXmlHttpRequest();
var url="register.asp";
xmlHttp.open("post",url,true);
xmlHttp.onreadystatechange=handleRegister;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(createRegisterString());
}

function handleRegister()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
showRegisterInfo();
}
}
}

function showRegisterInfo()
{
var responseText=xmlHttp.responseText;
alert(responseText);
}

***********************************************************************************************************
register.asp

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<%
userName=Request.Form("userName");
pwd=Request.Form("password");
email=Request.Form("email");
var conn = Server.CreateObject("ADODB.Connection");
conn.Open("driver={Microsoft Access Driver (*.mdb)};DBQ="+Server.MapPath("fileSysDb.mdb"));
var rs=Server.CreateObject("ADODB.RecordSet");
Application.Lock();
rs.Open("userInfo",conn,3,3);
rs.AddNew();
rs("userName")=userName;
rs("pwd")=pwd;
rs("email")=email;
rs.Update();
Application.Unlock();
conn.Close();
Response.Write(userName+"注册成功!");
%>
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
土豆天天 2009-06-05
  • 打赏
  • 举报
回复
还有处理页也要规定输出编码的:
<%
response.Charset ="gb2312"
response.ContentType ="text/html"

userName=Request.Form("userName");
pwd=Request.Form("password");
email=Request.Form("email");
var conn = Server.CreateObject("ADODB.Connection");
conn.Open("driver={Microsoft Access Driver (*.mdb)};DBQ="+Server.MapPath("fileSysDb.mdb"));
var rs=Server.CreateObject("ADODB.RecordSet");
Application.Lock();
rs.Open("userInfo",conn,3,3);
rs.AddNew();
rs("userName")=userName;
rs("pwd")=pwd;
rs("email")=email;
rs.Update();
Application.Unlock();
conn.Close();
Response.Write(userName+"注册成功!");
%>
土豆天天 2009-06-05
  • 打赏
  • 举报
回复
中文要加密才能在js中转值的
var queryString="userName="+escape(userName)+"&password="+pwd+"&email="+email;


还有ajax中还有规定编码方式
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("charset","gb2312");

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧