为什么我返回的值是乱码呢?该如何处理?
高手。我使用xmlhttp 之后获得的字符串为乱码,为什么呢? 问题点数:20、回复次数:7Top
1 楼supNate(铅笔)回复于 2006-03-20 15:06:17 得分 5
可能原因:
1。服务器端数据本身是乱码
解决方法,提交数据前使用escape()编码数据
2。请求的页面和当前页面编码不同
解决方法:把页面编码设为一致,例如都是utf-8,可以使用记事本的另存为,选择编码。Top
2 楼luoying_81(花生米)回复于 2006-03-20 16:05:07 得分 5
都设为utf-8编码格式。xmlhttpTop
3 楼weiguang(轻轻滑过)回复于 2006-03-21 11:48:19 得分 5
文件也要以utf-8格式来保存的吧?Top
4 楼lipeng2004(李逍遥)回复于 2006-03-22 21:46:59 得分 5
在Web.Config里设置
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
在发送请求时,对文本字符串进行转换,用escape()编码数据,不要将&也编码了。例如:
"searchvalue="+escape(tmpStr2)+"&layer=995";
在服务端解码:
Regex.Unescape(context.Request["searchvalue"]);
一般就可以解决了
Top
5 楼ysqy6666(方来)回复于 2006-06-01 17:56:59 得分 0
我也遇到这个问题.能不能给个详细的例子呀.Top
6 楼dam520()回复于 2006-06-01 19:08:25 得分 0
escape( )和 unescape()就可以解决问题
如:发送页面:
sUserId = escape(sUserId);
sUserName = escape(sUserName);
var userInfo = "userid="+sUserId+"&username="+sUserName;
oBao.open("POST","Server.asp",false);
oBao.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
oBao.send(userInfo)
接受处理以及返回数据页面:
var userid = unescape(Request.Form("userid"));
var username = unescape(Request.Form("username"));
sResult = "userid:"+userid+"\nusername:"+username+"\n 添加成功."
var sql = "Insert into users(userid,username)Values('"+userid+"','"+username+"')";
oConn.Execute(sql);
Response.Write(escape(sResult));Top
7 楼the_rising_sun(初升的太阳)回复于 2006-06-08 09:30:09 得分 0
如果是JSP
请在返回之前设置
response.setHeader("Charset","GBK");
就OK了.
Top




