在進行struts開發的過程當中。總也是出現很是多的亂碼問題。但歸根究竟,也僅僅是下面三種狀況:
㈠頁面顯示中文亂碼
㈡傳遞參數中文亂碼
㈢國際化資源文件亂碼
如下就這三中狀況介紹怎麼在詳細項目中處理這些亂碼問題。java
而對於整體的處理思想。是要統一編碼爲: UTF-8.(以myeclipse6支持的struts1.3爲準)
㈠頁面顯示中文亂碼
對於在頁面中顯示出現亂碼,這個問題比較簡單,即是檢查你的JSP文件中是否是出現了中文要處理。因爲JSP默認的編碼格式爲「ISO-8859-1」。當JSP中出現要處理的中文時。其顯示就出現亂碼了,這樣的狀況通常出現在手寫JSP,或改動時。因爲在myeclipse6.0中,假設出現了編碼錯誤時,程序不會讓你保存,而是會提示你注意編碼,這點很是好。web
詳細的改動辦法是把瀏覽器
改爲:app
㈡傳遞參數中文亂碼
傳遞參數出現的亂碼,參數的內容爲中文。比方在struts應用中,簡單的一個登陸界面中。需要傳遞的登陸名爲中文時,你沒經處理以前,是會出現亂碼傳遞的。爲了讓咱們能看到顯示的亂碼,咱們在相應的Action類的子類裏,改動一下。用System.out把接受到的參數輸出,代碼例如如下:ide
那麼當你提交了中文輸入後就會出現亂碼了。
詳細的解決方法:
①改動Tomcat---->conf----->server.xml文件,在改動port的標籤後面加一行代碼。例如如下:post
②編寫過濾器Filter
利用過濾器,把request傳遞的中文參數都設成「UTF-8」編碼。
③改動web.xml文件
打開項目裏的web.xml文件,在前面加上例如如下代碼:
注意其過濾的URL爲「/*」,表示當前的request請求。
爲了使設置生效,重起tomcat。
㈢國際化資源文件亂碼
①利用JDK的native2ascii工具進行編碼轉換
國際化問題。主要是爲了處理文件在瀏覽器上的顯示問題。仍是以登陸界面來講,比方在中文瀏覽器上,咱們要看到中文顯示,相應在英文瀏覽器上要顯示英文。那麼咱們在登陸那個界面處理上,就不能直接寫上咱們的「username」「password」等標識了。就要用標記轉換輸出了,改動爲:
再者,打開項目下的資源配置文件ApplicationResources.properties。根據上面所寫key值,設定成咱們要的默認值(顯示英文)。比方
引用
#Resource for Parameter 'com.v512.example.struts.ApplicationResources
#Project webexample2
example.login.username=username
example.login.password=password
現在咱們動手新建一個資源文件,讓其能顯示中文,直接Ctrl+C。Ctrl+V。更名爲ApplicationResources_zh.properties,代碼例如如下:
引用
#Resource for Parameter 'com.v512.example.struts.ApplicationResources
#Project webexample2
example.login.username=用戶名
example.login.password=密碼
但保存,myeclipse會報錯,這時咱們需要改動資源文件的編碼格式。Windons---->Preferences---->Content Type------>Text----->JavaPropertiesFile,把其Default encoding改成「utf-8」,按「update」更新。這樣就能進行保存了。
但是當咱們進行驗證會不是成功時,仍然給咱們的是亂碼。
不急。咱們還得作一項任務。打開DOS窗體。CMD到資源文件所在文件夾,運用JDK的native2ascii工具把咱們新建的資源文件改爲還有一個名字的資源文件,好比bank.properties。
命令例如如下:
引用
>native2ascii -encoding gbk ApplicationResources_zh.properties bank.properties
打開bank.properties資源文件,本身主動生成的代碼例如如下:
引用
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
example.login.username = \u7528\u6237\u540D
example.login.password = \u5BC6\u7801
而後在myeclipse窗體中,把原來新建ApplicationResources_zh.properties 刪除,並把bank.properties改成ApplicationResources_zh.properties (爲了方便記憶,管理)。
而後重起tomcat或進行reload文件,咱們發現亂碼問題沒有了。 ②利用Eclipse ResourceBundle Editor插件工具 以上咱們是利用了JDK的native2ascii工具來處理國際化問題,但在EC中,另外一種更方便的工具專門用來處理編輯java的資源文件國際化亂碼問題,即Eclipse ResourceBundle Editor插件工具。安裝了這個插件後,咱們能進行方便的可視化資源文件編輯。推薦。。