FileItem中文名字亂碼問題的解決


在網上看了一些解決的方法,試了下沒解決問題。

首先要明白為什么會出現這種問題:FileItem中用的編碼方式是UTF-8,而工程用的編碼方式是GBK。

在Debug的時候看發現傳進來的文件名已經是亂碼了,過來的字節數組轉換成GBK的原因,所以現在要用GBK來讀該串:

fileItem.getName().getBytes("GBK")

 讀完之后要把它還原成正確的格式,也就是UTF-8:

new String(fileItem.getName().getBytes("GBK"), "UTF-8")

 但是前端頁面要顯示的是GBK編碼,這樣就需要再造出一個String,是GBK格式字符串,第一步當然是先得到GBK對應的byte數組,即:

new String(fileItem.getName().getBytes("GBK"), "UTF-8").getBytes("GBK")

 得到數組之后,用該數組造一個GBK格式的字符串就可以了:

value = new String(new String(fileItem.getName().getBytes("GBK"), "UTF-8").getBytes("GBK"), "GBK");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM