September 16, 2008
鼓勵此網誌:0
最新內容請參閱 中文亂碼總整理 (Tomcat 5.5)
======= 以下內容不建議資料庫環境使用 =======
被湯姆貓的中文編碼問題弄到一個頭兩個大,
像是 PHP 塞資料進 MySQL 也常遇到中文編碼問題,
每次遇到這些問題都要花很久的時間才找的到答案 @_@
有些網友分享的方法,自己試起來不知道哪裡出錯,
試了很久還是沒辦法,
在 JavaWorld 中看到蠻詳細的討論文章,
解決 Tomcat 5.0.19 中文參數傳遞問題 [精華] by 精靈
照著做之後,中文編碼問題果然解決了 ^^
我的環境:
Windows xp pro
Tomcat 5.5.27
依表單送出的方式,做不同的處理
GET:
在 %TOMCAT_HOME%\conf\server.xml 中,找到 <connector port="8080" ... 部分,
加上 URIEncoding = "Big5" (參考上述文章),
把 Tomcat 重啟之後,表單使用 GET 來傳遞中文就不會發生亂碼。
POST
方法1: 在每一頁加上 <% request.setCharacterEncoding("Big5"); %>
方法2: 若是有多個網站,將 %TOMCAT_HOME%\webapps\jsp-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class 複製到 %TOMCAT_HOME%\shared\classes\filters 下,(若沒有資料夾可以自己新增,細節參考上述文章),修改 %TOMCAT_HOME%\webapps\(mytest)\WEB-INF\web.xml (mytest 為網站目錄),加上以下內容
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>Big5</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
若有多個網站,就修改每個網站下的 WEB-INF\web.xml 檔案,完成後,重啟湯姆貓。



