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按我配置的方式来编码吧...
class="java"><Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
/>
2、修改reguest对象默认的获取参数时的解码方式。这个就比较麻烦了...
具体可以参考一下博文:
http://lwfshr.iteye.com/blog/517918