Ajax中文乱码问题
1.js代码
var userName=$("#userName").val();
var url = "user/login.action?userName=" + encodeURI(encodeURI(userName));
//或者
var url =encodeURI(encodeURI( "user/login.action?userName=" + userName));
2.java代码
String userNameStr=URLDecoder.decode(request.getParameter("userName"), "UTF-8");
这样就可以了,也可以遍历所有的值:
for (Enumeration e = request.getParameterNames(); e.hasMoreElements();) {
String name = (String) e.nextElement();
String str = request.getParameter(name);
String value = java.net.URLDecoder.decode(str, "UTF-8");
System.out.println(value);
}
注意事项:
1.连续两次调用ecodeURI的原因:是因为 Java 中的 request.getParameter(String) 方法会进行一次 URI 的解码过程,调用时内置的解码过程会导致乱码出现。
而 URI编码两次后, request.getParameter(String) 函数得到的是原信息 URI 编码一次的内容。接着用 java.net.URLDecoder.decode(String str,String codename) 方法,将已经编码的 URI 转换成原文。
2.在js里面可以alert(url),发现编码之后的格式我们已经“不认识”了(如果参数值是中文的);在java里面可以先获取,发现我们不认识,但是应该含有“%”这样的字样,这是unicode编码格式的;java.net.URLDecoder.decode是解码方法,和编码相对。就如同加密解密一样。
3..并不是所有的请求都要转码,如果是非ajax的请求,可以在web.xml里面添加如下代码使用spring的过滤器进行编码
<!-- 字符编码 filter 统一使用 "UTF-8"(文件/请求) -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
Ajax中文乱码问题解决方案
ajax乱码ajax乱码ajax乱码ajax乱码ajax乱码ajax乱码ajax乱码ajax乱码ajax乱码ajax乱码
ajax乱码问题.ajax乱码问题的一些解决方案,总结网友的一些方法。
Ajax 中文乱码问题 Ajax 中文乱码问题 Ajax 中文乱码问题
jquery+asp ajax 中文乱码问题解决文档
解决ajax乱码和页面传值问题,很深入啊
8,如果后台是gb2312或其他编码数据就会产生乱码解决方法进一步整理中推荐方法,前台后台都用utf-8编码,这样可以省不少麻烦,从根本上解决了乱码问题.优点是效率高,而且符合目前的形式,utf-8编码本身就是一种比较优秀...
Ajax解决乱码问题
Ajax uri 乱码问题总结
Ajax乱码:当调用request.getParameter()函数时,会自动进行一次URI的解码过程,调用时内置的解码过程会导致乱码出现。而URI 编码两次后,request.getParameter()函数得到的是原信息URI编码一次的内容。再用可控的...
这是一个ajax解决乱码的问题WEBSERVICE项目
本人收集的解决Ajax的乱码解决办法,自己试了很多,确实能够解决问题。
java认证_Ajax中文乱码问题及解决方法.doc
基于jsp后台java解决ajax异步传输中文乱码问题.
在Ext的使用过程中,一不留心就出现了乱码,包括在客户端提交给服务器的数据中出现了乱码和服务器端返回给客户端的数据中出现了乱码,下面简单分析一下出现乱码的原因。
Ajax 乱码Ajax 乱码
Jquery解决异步提交ajax提交乱码问题
AJAX乱码解决大全
Ajax乱码解决,文档类型,百度可以找到,想偷懒的就拿分来换!