最近在做Server的轉換,由Big5轉換成UTF8,所以常會遇到編碼問題….
剛好這幾天在測試Samba,發現由舊主機到新主機的檔案在檔名上面會有亂碼,才發現連檔案名稱也有編碼格式,所以在Google搜一下,還好有個小程式就可以輕易解決…
程式名稱是Convmv
安裝方式如下:
1.下載檔案
2.解壓縮安裝
2-1 tar zxvf convmv-x.xx.tar.gz
2-2cd convmv-xx
2-3 make install
3.使用方式
convmv -f big5 -t utf-8 -r –notest ./*
4.相關參數說明
- convmv -f big5 -t utf-8 -r –notest *
- -f big5: 從 Big5 編碼轉換 (不過標準應該是要寫 big5-eten, 但是我測試 big5 也可以動. :P)
- -t utf-8: 轉換編碼到 UTF-8
- -r: 遞迴的將目錄下的所有檔名都做轉換
- –notest: 如果不下這個, 一切動作都只是測試, 會直接將轉換前和轉換後的檔名列給你看, 這加下去, 才會實際轉換檔名.
- ./*: 當前目錄下所有檔案
- –list : 列出所有可用的編碼
- –unescape : 轉換檔名中 %xx 這種 16 進位的編碼 (mv “./a%20x.jpg” “./a x.jpg”)
- –lower : 將所有檔名都轉小寫(ex: convmv –lower LOWER.txt)
- –upper : 將所有檔名都轉大寫
- -i : 互動模式, 轉換前會先經過 y/n 確認
6.順帶一提Iconv
此指令是作檔案內容轉碼
使用方式:
iconv -c -f big5 -t utf8 要轉檔的檔案名稱 > 轉完後的檔案名稱
參數:
-c 省略無效字元的輸出
-f 要轉檔的檔案編碼
-t 轉完後的檔案編碼
參考網址:
Tsung's Blog