隨筆-31  評論-257  文章-0  trackbacks-0
              上幾天,要做Jsp文件上傳,上網Google了幾下,發現多是用JspSmartUpload組件來實現上傳,于是想將其應用到我的Struts應用里頭,剛開始不太會用,隨便寫了個表單頁面,就一個文件表單域,上傳,OK,正確接收,但當應用到自已的項目里時,發現其它表單的信息出現亂碼了,中文問題又出來了。
              但是確定是加上了這句:enctype="multipart/form-data",還是不行,文件是可以正確獲取了,只是其它的Text Input表單傳來的中文怎么轉換編碼都不行,不能正確還原中文,我用的是UTF-8編碼。我想,這應該是JspSmartUpload的問題吧,上網找了找,很多都沒說過這問題,有很多文章都是說教你怎么用JspSmartUpload上傳文件等等的,但那些例子都是只上傳一個文件表單,沒有混合上傳與普通表單的信息。
              郁悶了半天,既然是組件的問題,我想到想看看修改它的源碼來實現中文混合表單上傳,我下載下來的都是Jar包的,都是已編譯好的,又沒時間上網找源碼了,只好反編譯一下,修改,再重新編譯。唉,編譯下來的類里面的變量名等等都很混亂,看起來有點麻煩,沒辦法了,一直跟蹤運行下去吧,順騰摸瓜了。把幾個 Class反編譯下來后,找到了根源,在SmartUpload.class里,在upload函數下,找到這里 String s11 = new String(m_binArray,m_startData,(m_endData - m_startData) + 1); 經測試,這里是返回表單內容信息的String,看看他的構造函數,它沒有定義該String的Chartset,所以當然中文會出現亂碼了,用的是默認的西方ISO8859-1的編碼,所以中文在這里沒有得到正確轉換。為了方便起建,我在該類定義了一個靜態變量 : private static String charset = "iso8859-1"; 現寫個get  set方法,在剛先的表單內容的String里改一下,使用四個參數的構造函數,最后那個參數為編碼字符集參數,寫成 String s11 = new String(m_binArray,m_startData,(m_endData - m_startData) + 1,charset);  OK,在使用時,將SmartUpload構造出來時,再設置它將要使用的字符集,之后使用混合上傳,一切OK.
          posted on 2008-07-29 12:37 姜大叔 閱讀(885) 評論(5)  編輯  收藏 所屬分類: Java

          評論:
          # re: JspSmartUpload 中文問題! 2008-10-02 21:02 | jelin
          ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

          下載 SmartUpload 上傳組件(中文終極解決版) 即可

          http://download.csdn.net/source/640739

          ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
            回復  更多評論
            
          # re: JspSmartUpload 中文問題![未登錄] 2009-02-25 08:26 | 東哥
          ksn ksn   回復  更多評論
            
          # re: JspSmartUpload 中文問題! 2009-04-25 22:48 | 一個人
          樓主正解?。≈x謝  回復  更多評論
            
          # re: JspSmartUpload 中文問題! 2009-06-19 14:21 | qqf
          感謝 感謝啊  回復  更多評論
            
          # re: JspSmartUpload 中文問題! 2009-08-01 15:52 | today
          用UFOUpload(UFOUpload組件用于文件上傳的Jsp Web Server端的類)組件能從根本上解決亂碼問題,效果很好,發布網址:www.gm365.com 。  回復  更多評論
            
          主站蜘蛛池模板: 基隆市| 上饶市| 内丘县| 舒兰市| 女性| 张家港市| 卢湾区| 滁州市| 新民市| 乾安县| 含山县| 平泉县| 宜兰县| 沅江市| 永嘉县| 无为县| 神农架林区| 乳山市| 遂昌县| 阿拉尔市| 集安市| 旺苍县| 五河县| 襄垣县| 邻水| 准格尔旗| 桂平市| 图木舒克市| 原阳县| 黄大仙区| 阿尔山市| 龙南县| 吴忠市| 贺兰县| 邳州市| 常熟市| 辽阳县| 中西区| 墨玉县| 德格县| 梅州市|