前幾天有人使用Java zip解壓縮時遇到一個錯誤
java.lang.IllegalArgumentException: MALFORMED
我在幫忙google查詢問題的時候發現到他其實是因為壓縮檔裡面有中文
解壓縮的時候預設用UTF-8出錯
但是提出解法的大多是簡體中文的使用者
所以會看到以下的程式碼
Charset gbk = Charset.forName("GBK");
ZipFile zipFile = new ZipFile(zipFileName, gbk);
事實上GBK是簡中的編碼所以用GBK去解壓還是會造成亂碼的問題
台灣BIG5的編碼你需要使用的Charset是ms950
Charset gbk = Charset.forName("ms950");
ZipFile zipFile = new ZipFile(zipFileName, gbk);
將這個紀錄在google blog跟痞客邦上,希望有繁中的使用者遇到這個問題的時候不會找不到正確的編碼而卡住
沒有留言:
張貼留言