struts2中文問題

2021-08-30 10:39:12 字數 1658 閱讀 7855

說起來,接觸struts2也已經差不多半個月了,雖然期間斷斷續續的看過一些書,但是花的時間並不多,認識也不是很到位。但是工作需要,也顧不了那麼多了。struts2在中文的處理方面並沒提供多大幫助,雖然內建個

關於這個變數,已經有人討論過了,主要是對request,response的編碼處理,在以前解決jsp+servlet或struts亂碼時,的確是加個過濾器,然後將request的encoding設為utf-8,但是struts2的struts.i18n.encoding看似與此過濾器差不多,還多做了點事(response),但是在傳中文引數的時候還是會出現亂碼:

如果上面的檔名為中文,在action裡面列印出的檔名還是亂碼。於是開始懷疑struts.i18n.encoding這個引數到底起作用沒有,經過在action的驗證:

getrequest().getcharacterencoding()

這個encoding確實是utf-8,說明request的引數編碼的確為utf-8,那為什麼中文檔名還是亂碼呢?這個問題目前還不能合理的解釋。於是只好手動來轉碼了:

string chinesefilename = new string(filename.getbytes("iso8859-1"),"utf-8");

public string getdownloadchinesefilename() throws unsupportedencodingexception

downloadfile

attachment;filename="$"

public string getdownloadchinesefilename() throws unsupportedencodingexception

然後測試,結果附件名成中文了,高興了一下,但是不要慌,這只是在ff下的測試,在ie7上試了一下,結果依然亂碼,我暈!這下讓人犯難了,轉與不轉都有問題,該怎麼辦?沒辦法了,解決不了,於是去掌門人上玩了幾把dota:奇怪的是,輸的時候總是輸得很乾脆,贏的時候卻總是贏得很艱難,每次贏的時候大家都神裝了,打得那個吃力呀!

玩過幾把後,回到原來的話題,中文附件問題到底該怎麼辦?心想,到action裡既然是亂碼,應該那是得轉碼,但是utf-8碼的確是有問題,於是把中文的檔名再轉成iso8859-1,我把上好的中文名再轉成iso8859-1,應該不會有問題了吧?於是這樣:

public string getdownloadchinesefilename() throws unsupportedencodingexception

經過ff與ie的測試都正常了,問題解決了。

不管怎麼說,中文附件名的問題終於解決了,接觸struts2時間不長,但是發現搞個東西還真不容易。因此撰寫此文,希望能給哪怕只乙個人提供一頂兒幫助也好。

ps:測試環境為

struts2.1.8.1

tomcat6.0.18

Struts2中文問題!!

struts2因為版本的不同,中文處理的方式也不相同。1.在struts2.1.6版本中,中文的處理是該程式的乙個小bug,不能採用寫乙個struts.properties檔案的方法,內容寫上struts.i18n.encoding gb2312,這種方式該版本支援的不是很好。要想對中文很好的支援,...

struts2中文亂碼問題

struts2中文亂碼問題。困擾了好久 在網上查了很多資料,都說得很全面很到位,我還是無法解決我的亂碼問題,後來乙個偶然的發現終於知道自己的問題出在哪了。因為我在編寫jsp頁面 的時候沒有使用到struts2的標籤庫,而這正是罪惡的根源。自己將原來的換成了struts的form標籤就解決了。進一步檢...

Struts2中文亂碼問題

struts2中文亂碼問題 有一段時間沒做struts2開發了,同時教我幫忙給他做個struts2的demo框架。搭建過程中碰到中文亂碼問題。主要要注意一下幾點 第一點 struts.properties配置檔案中的 struts.i18n.encoding gbk 第二點 jsp檔案 標頭檔案 p...