读书人

Spring中Get提交时用encodeURICompo

发布时间: 2012-03-12 12:45:33 作者: rapoo

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


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

读书人网 >Java Web开发

热点推荐