java web开发编码处理

java web开发编码处理是一个比较头疼的问题。
处理编码问题得分为两种情况:
1、post请求
2、get请求

request.setCharacterEncoding("UTF-8");设置post请求中消息体中内容按照UTF-8编码格式解码。所以只能处理post请求的请求。一般通过编码过滤器都能解决。


get请求就比较麻烦了,因为对于get请求,如果我们知道了get的编码方式(后台存在不知道是按照什么编码方式编码的情况,比如用户使用不同的浏览器直接复制了某个链接),那就得先解码,使用下面的方式:先使用原来的方式解码,在用UTF-8编码回后台程序的编码格式。为什么使用ISO8859-1屡试不爽呢?因为大部分浏览器默认的编码方式是ISO8859-1。
paramValue = new String(paramValue.trim().getBytes("ISO-8859-1"), "utf-8");

当然,对于get请求只能每次这么做吗?如果参数是多个,还不累死?
其实,也有两种方式:
1、修改tomcat的默认URL解码方式。告诉Tomcat按我配置的方式来编码吧...
<Connector port="8080" protocol="HTTP/1.1"    
           connectionTimeout="20000"    
           redirectPort="8443"    
           URIEncoding="UTF-8"  
 />

2、修改reguest对象默认的获取参数时的解码方式。这个就比较麻烦了...
具体可以参考一下博文:
http://lwfshr.iteye.com/blog/517918

猜你喜欢

转载自wangboak.iteye.com/blog/2041238
今日推荐