在使用了Spring框架下回发现很多表单交互的地方会发生乱码,而且写到数据库中也是乱码,这其实还是字符编码的问题,在我们还在用自己写的servlet的时候,直接在request和response加上字符约束就好了,但是我们在使用spring的时候,这样做就失去了框架的意义。
这时候我们可以使用一个过滤器来将转码。
如果你这样:
1 str = new String(str.getBytes("ISO-8859-1"), "GBK");
转码。 写出来程序通用性不好,而且每次有中文都要这样,用过虑器好。但只对post方式有效。get方式看。
在spring中,不仅有已经写好的普通servlet,同样存在已经写好的过滤器,使用方法和spring的servlet的使用方法是一样的。我们可以直接在配置文件web.xml中配置好,就可以直接使用:这个过滤器的完整名字是:org.springframework.web.filter.CharacterEncodingFilter
部分web.xml中的代码:
1 <filter> 2 <filter-name>CharacterEncodingFilter</filter-name> 3 <filter-class> 4 org.springframework.web.filter.CharacterEncodingFilter 5 </filter-class> 6 <init-param> 7 <param-name>encoding</param-name> 8 <param-value>utf-8</param-value> 9 </init-param> 10 </filter> 11 12 <filter-mapping> 13 <filter-name>CharacterEncodingFilter</filter-name> 14 <url-pattern>/*</url-pattern> 15 </filter-mapping>
通过这个配置我们整个工程项目的字符编码都会成为utf-8的编码。
==========================================================