iconv — 文字編碼轉換
轉換文字檔案的字元編碼,如 Big5 轉 UTF-8。
語法
iconv -f 來源編碼 -t 目標編碼 [檔案...]
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-f FROM |
指定來源編碼(from) | iconv -f big5 -t utf8 |
-t TO |
指定目標編碼(to) | iconv -f utf8 -t utf16 |
-o FILE |
輸出到指定檔案(不指定則輸出到標準輸出) | iconv -f big5 -t utf8 -o out.txt in.txt |
-l |
列出所有支援的編碼名稱 | iconv -l |
-c |
略過無法轉換的字元(不中止) | iconv -c -f big5 -t utf8 |
使用範例
範例 1:Big5 轉 UTF-8(最常見)
將舊的 Big5 繁體中文檔案轉換為現代的 UTF-8 編碼。
$ iconv -f big5 -t utf-8 old.txt -o new.txt
範例 2:批次轉換所有 Big5 文字檔
在腳本中批次轉換目錄下所有 Big5 文字檔。
$ for f in *.txt; do
iconv -f big5 -t utf8 "$f" -o "utf8/$f"
done
範例 3:查看支援的編碼名稱
列出所有支援的編碼,可搭配 grep 找到需要的格式。
$ iconv -l | grep -i big
BIG5
BIG5-HKSCS
BIG5HKSCS
範例 4:GBK 轉 UTF-8(簡體中文)
處理來自中國大陸的 GBK 編碼簡體中文檔案。
$ iconv -f gbk -t utf-8 simplified.txt -o out.txt
常見錯誤與排錯
iconv: illegal input sequence at position N
- 原因
- 來源編碼指定錯誤,或檔案確實包含非法字元序列(如混合編碼)。
- 解法
- 先用 file -i 確認編碼,或加 -c 略過無法轉換的字元。