歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統入門學習:在 Linux 如何更改文本文件的字符編碼

Linux系統入門學習:在 Linux 如何更改文本文件的字符編碼

日期:2017/2/28 14:25:53   编辑:Linux教程

問題:在我的 Linux 系統中有一個編碼為 iso-8859-1 的字幕文件,其中部分字符無法正常顯示,我想把文本改為 utf8 編碼。在 Linux 中, 有沒有一個好的工具來轉換文本文件的字符編碼?

正如我們所知道的那樣,電腦只能夠處理低級的二進制值,並不能直接處理字符。當一個文本文件被存儲時,文件中的每一個字符都被映射成二進制值,實際存儲在硬盤中的正是這些“二進制值”。之後當程序打開文本文件時,所有二進制值都被讀入並映射回原始的可讀字符。只有當所有需要訪問這個文件的程序都能夠“理解”它的編碼,即二進制值到字符的映射時,這個“保存和打開”的過程才能很好地完成,這也確保了可理解數據的往返過程。

如果不同的程序使用不同的編碼來處理同一個文件,源文件中的特殊字符就無法正常顯示。這裡的特殊字符指的是非英文字母的字符,例如帶重音的字符(比如 ñ,á,ü)。

然後問題就來了: 1)我們如何確定一個確定的文本文件使用的是什麼字符編碼? 2)我們如何把文件轉換成已選擇的字符編碼?

步驟一

為了確定文件的字符編碼,我們使用一個名為 “file” 的命令行工具。因為 file 命令是一個標准的 UNIX 程序,所以我們可以在所有現代的 Linux 發行版中找到它。

運行下面的命令:

  1. $ file --mime-encoding filename

步驟二

下一步是查看你的 Linux 系統所支持的文件編碼種類。為此,我們使用名為 iconv 的工具及 “-l” 選項(L 的小寫)來列出所有當前支持的編碼。

  1. $ iconv -l

iconv 工具是 GNU libc 庫組成部分,因此它在所有 Linux 發行版中都是開箱即用的。

步驟三

在我們在我們的 Linux 系統所支持的編碼裡面選定了目標編碼之後,運行下面的命令來完成編碼轉換:

  1. $ iconv -f old_encoding -t new_encoding filename

例如,把 iso-8859-1 編碼轉換為 utf-8 編碼:

  1. $ iconv -f iso-8859-1-t utf-8 input.txt

了解了我們演示的如何使用這些工具之後,你可以像下面這樣修復一個受損的字幕文件:

更多Oracle相關信息見Oracle 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=12

更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

更多Fedora相關信息見Fedora 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=5

更多Hadoop相關信息見Hadoop 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=13

更多RedHat相關信息見RedHat 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=10

更多SUSE相關信息見SUSE 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=3

更多CentOS相關信息見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14

Copyright © Linux教程網 All Rights Reserved