论坛首页 Web前端技术论坛

AJAX中文乱码解决

浏览 39678 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (9)
作者 正文
   发表时间:2009-09-24  
在页面encodeURI()一次,在后台URLDecoder.decode(request.getParameter(“参数名”), "utf8") 我是这样解决的
0 请登录后投票
   发表时间:2009-10-10  
以前用过,可以解决Ajax乱码,有些情况好像不行。
0 请登录后投票
   发表时间:2009-11-30   最后修改:2009-11-30

[quote="java_mike"]   以下是我的AJAX中文乱码的解决方案:

客户端对url进行两次转码:(str可能是中文)

[code="js"]...
var url = 'policy.do?method=searchSuggest&word=' + str+"&now="+new Date().getTime();
url = encodeURI(url);
url = encodeURI(url);
...



服务器段对参数值进行解码:


[code="java"]...
String word = request.getParameter("word");
word = java.net.URLDecoder.decode(word,"UTF-8");
...



其实一次就够了,在Servlet或Action里

[code="java"]String str=request.getParameter("name");

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=utf-8");

response.getWriter().write(str);


页面Ajax部分:


[code="js"]var url = '/sample.do?name=' + encodeURIComponent('中文名字');
new Ajax.Request(url, {  
method: 'get', 
encoding:'UTF-8' ,
onSuccess: function(transport) {    
var notice = $('notice');  
if(transport.responseText!=null)  {
notice=transport.responseText;
alert(notice);
}
}
});

 

0 请登录后投票
   发表时间:2010-01-07  
可以用ESCAPE嘛!真是的
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics