• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Linux 查詢、轉換 Big5、UTF8 檔案編碼教學與範例

介紹如何在 Linux 系統中使用 file 與 iconv 指令查詢與轉換檔案編碼,處理 Big5 與 UTF8 檔案亂碼問題。


遇到含有中文的文字檔出現亂碼時,通常都是因為檔案採用不對的編碼所造成的,只要修正編碼之後即可恢復正常。在大多數的情況下,Linux 系統下會出現亂碼的中文檔案都是採用 Big5 編碼,只要轉為 UTF8 就可以正常使用了。

檢查檔案編碼

在 Linux 中若要檢查文字檔案的編碼,可以使用 file 指令:

# 檢查檔案類型
file myfile1.txt
myfile1.txt: UTF-8 Unicode text

file 指令預設會顯示讓人易讀的檔案格式說明文字,如果想要以精確的 MIME 類別格式來表示,可以加上 -i 參數:

# 檢查檔案類型(顯示 MIME 類別)
file -i myfile1.txt
myfile1.txt: text/plain; charset=utf-8

file 指令也可以一次檢查多個檔案的編碼:

# 檢查多個檔案的類型
file *.txt
myfile1.txt: UTF-8 Unicode text
myfile2.txt: ISO-8859 text

如果是 Big5 編碼的檔案,在使用 file 指令檢查時,通常會顯示 ISO-8859,像這裡的 myfile2.txt 就是一個 Big5 編碼的文字檔案。

轉換 Big5、UTF8 等檔案編碼

若要在 Linux 中轉換文字檔的編碼,可以使用 iconv 指令。例如將 Big5 編碼的檔案轉為 UTF8 編碼:

# Big5 編碼轉 UTF8 編碼
iconv -f big5 -t utf8 -o output.txt input.txt

其中 -f 參數是指定來源資料的編碼,-t 參數則是指定目的資料的編碼,而 input.txt 是輸入的檔案,轉出的結果會儲存在 output.txt 中。

若要反過來將 UTF8 編碼的檔案轉換為 Big5 編碼,只要把編碼對調即可:

# UTF8 編碼轉 Big5 編碼
iconv -f utf8 -t big5 -o output.txt input.txt

若要查詢 iconv 指令所支援的編碼,可以使用 -l 參數:

# 查詢所有支援的編碼格式
iconv -l

自動批次轉換編碼

以下的指令稿可以檢查所有的文字檔,將所有 Big5 編碼的檔案清單儲存於 big5.list 中,並以迴圈將每一個 Big5 編碼的檔案轉換為 UTF8 編碼:

# 產生 Big5 編碼的檔案清單,儲存於 big5.list
file *.txt | grep "ISO-8859" | awk 'BEGIN {FS=":"};{print $1}' > big5.list

# 讀取 big5.list 檔案清單,將檔案轉換為 UTF8 編碼
while read file; 
do
  iconv -f big5 -t utf8 -o "${file}.utf8" "${file}"
done < big5.list

參考資料

  • LINUX 技術手札:Linux 查看及轉換檔案編碼
  • Linux 將 BIG5 文字檔轉成 UTF-8 格式

分類:Linux

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide