很早就開始用DisplayTag了,真得很方便,不用考慮分頁,表格等問題。
但是有一個問題一直困擾我,就是有中文作為表單提交內容的時候,翻頁就不能用了,中文變成了亂碼。
表單傳送時, form的提交采用的是Post方法,這沒錯,但鏈接采用的是Get方法,問題就出在這里,因為和Tomcat4相比,Tomcat5的post和get采用的方式不再相同了,漢字編碼的實現方式也不同了。
Post是將地址傳送一次,將form的數據單獨提交,而Get則是將地址和參數一起傳送,傳送的不止是form的數據。
默認情況下,Tomcat對請求采用的默認編碼是ISO-8859-1,這樣我們提交的漢字被認為是ISO-8859-1的編碼,所以在程序中接收時顯示亂碼。 在過濾器中調用request.setCharacterEncoding("GBK"),那么Post上來的漢字將被認為是GBK編碼,而Tomcat5對于Get請求上來的編碼并不根據過濾器的設定辨認編碼方式,默認的依然是ISO-8859-1,所以,即使你的頁面使用默認的編碼方式進行編碼,然后使用ISO-8859-1進行解碼,得到的結果也不對。
解決方法:
在Server.xml的connector部分設定URIEncoding的值,根據編碼方式指定自己的值就可以了
例如:URIEncoding="GB2312"
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=679832
posted on 2007-09-15 10:34
Ke 閱讀(1903)
評論(1) 編輯 收藏 所屬分類:
tag