google code-beautifer

星期六, 12月 29, 2007

用 convmv 來轉檔名編碼

在某些情況下,Mandriva 安裝系統時會在家目錄下產生這些子目錄:
文件/
音樂/
桌面/
嚙賞面/
下載/
影片/
圖片/
看起來不錯,但是要是一開始地區設定成台灣但沒有把utf8的編碼選項打開的話,這些檔名會用big5 編碼產生,之後localedrak換成 utf8環境時,系統不會自去轉這些檔名編碼。

要將big5 碼檔案的檔名轉為 utf-8 碼這個問題可用 convmv 來解決,convmv 可對檔案名或目錄名進行轉碼。在 MDV 2008 中有收錄convmv 的RPM,安裝後就可執行 convmv

convmv --help 會顯示使用的方法及參數。比如 -f 及 -t 參數,代表了 from 及 to (來源/目的編碼)的意思。想要知道convmv支援那些編碼呢,可輸入:

convnv --list

就會顯示支援的編碼了,一般我們用的是 big5-eten 及 utf8 這兩個格式。


要顯示轉換一個檔名的編碼(如 big5 轉 utf8)的測試結果可用:

convmv -f big5-eten -t utf8 我的檔案名稱

要真的進行轉換的話,需加上 --notest 這個參數。如:

convmv -f big5-eten -t utf8 --notest 我的檔案名稱

要更改多於一個檔名的編碼話,最好將想轉換的檔案先備份到一個目錄下再轉換,然後執行如

convmv -f big5-eten -t utf8 --notest 我的工作目錄名稱/*

有多層目錄的話,可附加遞迴參數 -r 。

有時 convmv 在轉碼時可能會誤認認為已轉過碼,而不進行轉碼工作,像這個
嚙賞面/ 我就轉不出來。這時可試試加上 --nosmart 這個參數來強制轉換,如:

convmv -f big5-eten -t utf8 --notest --nosmart 我的檔案名稱

延伸閱讀
gnome 桌面上的"位置"如何設定