Tomcat下中文問題解決

nighthun發表於2007-07-17

Tomcat下中文問題解決

問題描述:
1、 表單提交的資料,用request.getParameter(“xxx”)返回的字串為亂碼或者??
2、 直接透過url如
=中國,這樣的get請求在服務端用request. getParameter(“name”)時返回的是亂碼;
按tomcat的做法設定Filter也沒有用或者用request.setCharacterEncoding("GBK");也不管用

原因:
1、 tomcat的j2ee實現對錶單提交即post方式提示時處理引數採用預設的iso-8859-1來處理
2、 tomcat對get方式提交的請求對query-string 處理時採用了和post方法不一樣的處理方式。(與tomcat4不一樣,所以設定 setCharacterEncoding(“gbk”))不起作用。

解決辦法:

首先所有的jsp檔案都加上:

1、 實現一個Filter.設定處理字符集為GBK。(在tomcat的webapps/servlet-examples目錄有一個完整的例子。請參考web.xml和SetCharacterEncodingFilter的配置。)

1)只要把%TOMCAT安裝目錄%/ webappsservlets-examplesWEB-INFclassesfiltersSetCharacterEncodingFilter.class檔案拷到你的webapp目錄/filters下,如果沒有filters目錄,就建立一個。
2)在你的web.xml里加入如下幾行:

Set Character Encoding
filters.SetCharacterEncodingFilter

encoding
GBK



Set Character Encoding
/*

2 get方式的解決辦法
1)
開啟tomcatserver.xml檔案,找到區塊,加入如下一行:
URIEncoding=”GBK”
完整的應如下:

2)
重啟tomcat,一切OK[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/106943/viewspace-926817/,如需轉載,請註明出處,否則將追究法律責任。

相關文章