Ajax入门(二)——乱码问题的解决
2013-08-17 18:43
204 查看
我们使用Ajax与服务器交互时,通常会传些参数过去,这些参数有时后会是中文,这时,就有可能产生乱码问题了。
"UTF-8"); 这样就能解析到正确的中文参数了。
具体代码为:
方法一对请求的URL地址进行了一次重新编码,而在方法二中需要进行两次(不要问我为什么,我也不太清楚),也就是使用两次encodeURI。
具体为:
在服务器端则使用Java自己的api的URLDecoder的decode()方法对参数进行解码。
代码如下:
解决方法一
使用一次encodeURI()方法。在javascript代码中将请求访问的URL地址使用encodeURI()方法转换一次,在服务器端接收参数后在对参数重新编码,例如在Java中,对接收来的参数(username)可以重新按UTF-8方式编码:new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF-8"); 这样就能解析到正确的中文参数了。
具体代码为:
var url = encodeURI("servlet/AjaxServlet?username="+username); //将请求的地址和参与编码(Java)服务器端代码:
String old = request.getParameter("username").trim(); //注意,编码格式要和html或jsp页面的编码格式相一致,如果为gb2312,都应为gb2312old = new String(old.getBytes("ISO-8859-1"), "UTF-8");
解决方法二(推荐)
方法一可以解决大部分浏览器的乱码问题,可有时候并不是万能的,有时候还是会乱码,所以我推荐下面的方法。方法一对请求的URL地址进行了一次重新编码,而在方法二中需要进行两次(不要问我为什么,我也不太清楚),也就是使用两次encodeURI。
具体为:
var url = encodeURI("servlet/AjaxServlet?username="+username); url = encodeURI(url);注意:上边的两次encodeURI需要分开写,不能写到一句里面,不能像这样:var url = encodeURI(encodeURI("servlet/AjaxServlet?username="+username));这样是没有效果的,请读者自行测试。
在服务器端则使用Java自己的api的URLDecoder的decode()方法对参数进行解码。
代码如下:
String old = request.getParameter("username").trim(); old = java.net.URLDecoder.decode(old, "UTF-8");
相关文章推荐
- Ajax入门(二)——乱码问题的解决
- 关于php中ajax运用时的中文乱码问题的解决
- asp+ajax解决中文乱码问题
- 真正的解决Ajax的中文乱码问题(ASP环境)
- 解决AJAX传送中文会导致乱码的问题
- AJAX下Post表单(解决中文乱码问题)
- 解决ajax传递中文参数,出现乱码的问题
- 解决ajax提交表单时中文乱码的问题
- Struts框架下Ajax发送中文乱码问题的解决
- [转]结合PHP实例谈谈如何解决jQuery.ajax提交GB2312或GBK编码中文乱码问题
- 利用jquery实现Ajax技术,post方式传值中文乱码问题的解决办法。
- 解决Ajax返回的json数据乱码问题
- 遇到AJAX中文乱码问题终极解决方法
- 解决AJAX传送中文会导致乱码的问题
- AJAX下Post表单(解决中文乱码问题)
- Ajax GET方法乱码问题解决
- Ajax解决传参乱码问题的方法
- PHP Ajax中文乱码问题解决方法
- 用ajax传递json到前台中文出现问号乱码问题的解决办法
- 解决domino 中用ajax 时 send的中文参数出现乱码问题