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 略過無法轉換的字元。

延伸閱讀