檔案名從 big5 到 utf8 convmv

最後更新: 2017-03-06

緣起

UTF-8 相信必然是大世所趨, 一向用開 big5 的我都要升級上去了.

不過, 我系統有許多中文名稱的檔案, 所以我遲遲都不轉用 UTF-8 = , ="

因為當系統轉到用 UTF-8 後, 所有原本正常顯示的檔名全都亂碼了 ....

這是因為以前的系統是以 big5 碼來 encode 檔案名, 之後存放在 Harddisk 裡

當讀取出來時, 系統會以 big5 碼解讀出來. 所以當然正常啦.

不過現在情況不同了 !!

|檔案名(big5)|------->|UTF-8 解讀 |-------->|亂碼|

相信很容易理解, 顯示亂碼係必然的 ....

所以, 現在唯有把全部檔名都轉成 UTF-8, 這樣才可解決此問題.

 

 


工具 - convm

 

convmv 正正就可以解決此問題 ~ (最初少弟以為要逐一為它們改名的 .....)

它支援不少編碼之間的轉換, 詳見 convmv --list

它本自相當 smart~ 對於本身是 UTF-8 的檔案它就不會再轉多次的 !!!

Install

apt-get install convmv

yum install convmv

用法

       convmv -f ENCODING -t ENCODING [options] FILE(S) ... DIRECTORY(S)

-f ENCODING -t ENCODING 即是 from 什麼 to 什麼 的意思.

測試

--list                  # list all available encodings.

7bit-jis
AdobeStandardEncoding
AdobeSymbol
AdobeZdingbat
ascii
ascii-ctrl
big5-eten
big5-hkscs
cp1006
cp1026
cp1047
........................

實用參數

-i  interactive mode

-r  recursively go through directories

 --unescape 解決  %20 之類的編碼

--notest 不作出 preview

明白了後, 那就開工了.

convmv -f big5 -t utf8 ./*

大家請放心吧, convmv Default 只會做 preview 的工作而已, 不會攪任何檔案 !!

看過輸出後無問題, 那就來"真"的.

convmv --notest -r -f big5 -t utf8 ./*

呵呵~ 看來成工了 ^ , ^


後記

 

中文XP: 中文.txt --------WinSCP ------> locale=UTF-8: ????.txt 

# 如果要正常顯示的話:  big5 ----------> utf8

 


參考