ajax servlet 中文乱码 求助

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:00:45
弄了一天,还是没有解决

真是有点郁闷,搜索的方法都试了,可是没有效果!

我的ajax是提交到servlet的,到数据库里的是中文,可是responseText取出来的是乱码,不知道怎么解决

还有我的post提交的时候到数据库中是乱码,取出也是乱码,希望有人能帮我
我的页面是设置为gbk的,servlet里面也设置了编码为gbk
post发送的时候也设置了head
也用了new String(name.getBytes("ISO-8859-1"),"UTT-8")
结果没有解决

ajax 是依靠xmlHttpRequest 对象来异步发送请求
造成乱吗肯定是由于中文编码和http头中的编码 不一致
默认在http头中找不到编码的话 xmlhttprequest对象是把字符按照utf-8来处理的 如果你设置了http头的编码的话 就会按照你设置的类型来编码.
解决返回数据的乱吗问题可能在jsp的servlet里面这样设置
response.setHeader("charset", "gb2312");
解决发送的请求后台处理的时候乱码需要 设置xmlhttprequest对象发送请求时候的编码. 在prototype中的编码设置 是这样

new Ajax.Request(
'test',
{
onSuccess:function(r){},
encoding :'UTF-8'//和你的提交的编码一直
}
);

请问您怎么解决的,我一直没有搞定这个乱码问题 !

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
请在你每个servlet方法之前加入这两句话;
最好是写一个过滤器,在过滤器中加入这两个语句。
实现UTF—8编码,支持各种语言。

String name = request.getp....("getName");
name = new String(name.Byte("iso-8859-1"),"BGK");
name 的值就不是乱码,用这种方法最好了:

用post提交时中文解决办法:
1.发送
在open方法后加上
http_request.setRequestHeader("Content-Type", "application/x-www-f