Posted on 2010-05-23 10:46
xcp 閱讀(308)
評論(0) 編輯 收藏 所屬分類:
struts2
1、JSP頁面顯示的中文問題
這是最初級的東西,網上到處都有,不過還是列一下吧:
Page的第一行改成:<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
Head里加:<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
2.struts2里面配置,不過默認就是utf-8
<constant name="struts.i18n.encoding" value="utf-8"></constant>
3.但是有的時候雖然配置了struts2,但是有時候還是出現亂碼,比如struts2,1.6就是,所以我們最好在struts2過濾之前就已經將數據過濾了一次
在這我們可以自己實現或者用spring都可以
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
其實任何的interceptor機制都可以處理這個的,不管用Webwork還是Spring的interceptor,甚至用AOP,只要在取參數前
加那么一句:request.setCharacterEncoding("utf-8");就行了。以前我用struts就是在它的
RequestProcessor的populate之前加了這么一行。
4. request 的parameter里要傳中文參數的問題
這個問題跟Web
Container有關系,記得以前我同學用WebLogic時好象沒出現這樣的問題。(Tomcat里的解決方案是在server.xml里
Connector port="8080"的attribute里加URIEncoding="utf-8"
當然還有最土的解決方案,雖然不太會用到,不過還是列出來,以備最無奈的時候使用:
String encodeStr=new String(fieldValue.getBytes("8859_1"), "utf-8");
名稱: ?4C.ESL | .↗Evon
口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
mail: 聯系我