最後更新: 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
參考