日期:2014-05-17  浏览次数:20877 次

Spring中Get提交时,用encodeURIComponent转换过的中文,在后台取出也是乱的。
Spring中Get提交时,用encodeURIComponent转换过的中文,在后台取出也是乱的。

记得encodeURIComponent转过的中文,虽然用的是GET,但后台取时,并不是乱码的。

当然Post可以解决。但记着以前GET是可以的。

Spring 3.0.6 ,Tomcat 7.0

------解决方案--------------------
把tomcat里面也设置一下试试
Java code
useBodyEncodingForURI="true"

------解决方案--------------------
叮叮当
------解决方案--------------------
又是乱码,用那个什么new String(str.getBytes("iso-8859-1"),"utf-8")试试
------解决方案--------------------
问题可能不是spring吧,你用的struts是哪个版本的
------解决方案--------------------
java.net.URLEncoder.encode(java.net.URLEncoder.encode(编码的东西,"UTF-8") ,"UTF-8") ;


后台取的时候:charset = "UTF-8"
java.net.URLDecoder.decode(str, charset);

------解决方案--------------------
针对乱码问题可能导致的原因有:

1.浏览器本身的编码。各个浏览器的默认编码不同
2.在后台获取时采用了其他编码


解决办法:

1.GET 方法提交时tomcat可以设置useBodyEncodingForURI="true"
2.在浏览器那边也可以采用URLEncoder
3.使用spring的编码过滤器类
4.调整浏览器编码 比如firefox 有个about:config 进去之后有个network.standard.utf=true


以上方法基本能解决乱码问题