iconv - 轉換檔案編碼

不知大家是否有注意到安裝 Linux 時有個選擇語系及編碼的步驟?個人習慣使用 en_US.UTF-8 或 zh_TW.UTF-8 編碼;台灣區的 Windows XP 預設為 BIG5,而 Windows 7 則是 UTF-8。

每當有 BIG5 檔案丟近 Linux 時,其內文有中文時都會變成亂碼,例如「¥¿­×¬ì§Þ¤j¾Ç」,但正常應該要顯示「正修科技大學」才對!相信透過 iconv 指令大家都能順利地找回中文。

1. 檔案編碼轉換


1.1. BIG5 To UTF-8。
jonny@precise:~$ iconv -f big5 -t utf-8 big5.txt -o utf8.txt [Enter]

1.2. UTF-8 To BIG5。
jonny@precise:~$ iconv -f utf-8 -t big5 utf8.txt -o big5.txt [Enter]

1.3. UTF8 To GB2312。
jonny@precise:~$ iconv -f utf-8 -t gb2312 utf8.txt -o gb2312.txt [Enter]

2. 錯誤訊息: illegal input sequence at position」


在使用 iconv 轉換文件的編碼時,如看到「iconv: illegal input sequence at position」錯誤訊息時,就代表您的編碼庫不用新,無法正確轉換,建議使用較新的版本

3. 察看 iconv 版本

jonny@precise:~$ iconv -V [Enter]
iconv (Ubuntu EGLIBC 2.15-0ubuntu6) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Ulrich Drepper.

# 使用此指令時請千萬小心,別把原始檔給覆蓋掉!相信大家都不會想重蹈凍仁的覆轍,最後凍仁要說的是減重第三週的成績只有 0.2kg,看來真的一點都不能鬆懈呢。

延伸閱讀:
BIG5 - Max 的宅空間

資料來源:
Ching Wei: 【系統】Linux : BIG-5 與 UTF-8 檔案轉換
鳥哥的 Linux 私房菜 -- vim 程式編輯器
Linux 字符集轉換工具:iconv - 北漂小石

留言

  1. V字龍29/3/12 18:58

    ...用Kate文字編輯器打開在另存新檔也能解決,Kate支援自動偵測BIG5檔案編碼

    回覆刪除
    回覆
    1. 補上 GEdit 的文章 - [Ubuntu]解決gedit中文亂碼問題 | 電腦不難

      但話說回來更改 editor 是個作法沒錯,但對凍仁而言是治標而不是治本啊!總不能每次都用 gedit, kate 這類 editor 來編輯 Server 上的檔案,editor 基本上凍仁還是 vi 為主。

      刪除
    2. 如果您哪天要管到數十台 Linux Server 就不會想依賴 GUI 了 :P

      刪除
  2. iconv: illegal input sequence at position

    如果出現這行可以試試看用 -sc 參數

    iconv -sc -f utf-8 -t gb2312 utf8.txt -o gb2312.txt

    回覆刪除

張貼留言

喜歡這篇文章嗎?歡迎在底下留言讓凍仁知道。😉

Popular Articles

MySQL 語法匯整