日期:2014-05-16 浏览次数:20380 次
>>>>1<<<<<
?
tomcat配置解决乱码:tomcat作为服务器的时候,设置tomcat让其将请求全部转换成指定的编码..能解决部分乱码.配置如下
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"
/>
>>>>2<<<<<
客户端和服务器在传递数据时可以用过滤器filter解决字符编码问题,但filter只能解决post方式提交的数据。
所以好多时候我们都要设置下,比如ajax的js请求.设置成post方式.以免麻烦.filter代码配置如下:
<!-- 定义编码过滤器 --> <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> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ?
?>>>>3<<<<<
大多数的乱码问题有以上两种方案基本解决,那么还不行.就是麻烦的js的编码和..URL以及URL的参数的中文了.
JS中编码有escape(),encodeURI(),encodeURIComponent()三个,escape()在提交页面和 处理页面的编码格式相同的情况下(比如它们都是GB2312),encodeURI()和encodeURIComponent()的用法基本相同,区别 在于encodeURIComponent()也对"?"等特殊字符进行编码。
? 这里需要注意的是encodeURI()要进行两次编码.因为编码转义成%号.需要对%好再次进行转义.可能要点绕.但进行两次肯定正确:如encodeURI(encodeURI("乱码"));
?
乱码解决方案:我想到的就这几点了.大家还有可以一起讨论.
?
借鉴:http://tao160911.iteye.com/blog/869117
?
?
?
?