在使用了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的編碼。
==========================================================