2011年6月19日 星期日

解決zip中的中文檔名無法被正確解壓縮的問題

zip壓縮檔裏面如果有big5編碼的中文字
如果用unzip的方式解壓縮則中文字會無法使用convmv來更改檔名的編碼方式
解決得方法要用7zip和convmv

sudo apt-get install p7zip-full convmv
安裝完以後只用7z還是無法正常解壓縮big5檔名的檔案的
必須得加上LANG=C才能正常
LANG=C 7z x filename.zip
解壓縮之後檔案的檔名才會是正常的big5編碼
然後再使用convmv來將big5的檔名
convmv -f big5 -t utf8 -r --notest *
我已經寫好script了
#!/bin/sh
LANG=C 7z x $1
dir=`7z l $1 |awk '{print $6}'|sed -n '13p'`
cd "$dir"
convmv -f big5 -t utf8 -r --notest *
拿去用吧!!

如果你想要讓7z可以自動帶上LANG=C的這個參數的話
可以利用alias在~/.bashrc來做一些修改
kate ~/.bashrc
跳到最後一行
輸入
alias 7z='LANG=C 7z'
存檔後登出登入就OK了!