成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Linux中將文件編碼轉換為UTF-8

系統 Linux 系統運維
在這篇教程中,我們將解釋字符編碼的含義,然后給出一些使用命令行工具將使用某種字符編碼的文件轉化為另一種編碼的例子。最后,我們將一起看一看如何在 Linux 下將使用各種字符編碼的文件轉化為 UTF-8 編碼。

[[176269]]

在這篇教程中,我們將解釋字符編碼的含義,然后給出一些使用命令行工具將使用某種字符編碼的文件轉化為另一種編碼的例子。***,我們將一起看一看如何在 Linux 下將使用各種字符編碼的文件轉化為 UTF-8 編碼。

你可能已經知道,計算機除了二進制數據,是不會理解和存儲字符、數字或者任何人類能夠理解的東西的。一個二進制位只有兩種可能的值,也就是 0 或 1,真或假,是或否。其它的任何事物,比如字符、數據和圖片,必須要以二進制的形式來表現,以供計算機處理。

簡單來說,字符編碼是一種可以指示電腦來將原始的 0 和 1 解釋成實際字符的方式,在這些字符編碼中,字符都以一串數字來表示。

字符編碼方案有很多種,比如 ASCII、ANCI、Unicode 等等。下面是 ASCII 編碼的一個例子。

  1. 字符            二進制 
  2. A               01000001 
  3. B               01000010 

在 Linux 中,命令行工具 iconv 用來將使用一種編碼的文本轉化為另一種編碼。

你可以使用 file 命令,并添加 -i 或 --mime 參數來查看一個文件的字符編碼,這個參數可以讓程序像下面的例子一樣輸出字符串的 mime (Multipurpose Internet Mail Extensions) 數據:

  1. $ file -i Car.java 
  2. $ file -i CarDriver.java  

 

 

 

在 Linux 中查看文件的編碼

iconv 工具的使用方法如下:

  1. $ iconv option 
  2. $ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile  

在這里,-f 或 --from-code 表明了輸入編碼,而 -t 或 --to-encoding 指定了輸出編碼。

為了列出所有已有編碼的字符集,你可以使用以下命令:

  1. $ iconv -l  

 

 

 

列出所有已有編碼字符集

將文件從 ISO-8859-1 編碼轉換為 UTF-8 編碼

下面,我們將學習如何將一種編碼方案轉換為另一種編碼方案。下面的命令將會將 ISO-8859-1 編碼轉換為 UTF-8 編碼。

考慮如下文件 input.file,其中包含這幾個字符:

  1. � � � � 

我們從查看這個文件的編碼開始,然后來查看文件內容。***,我們可以把所有字符轉換為 UTF-8 編碼。

在運行 iconv 命令之后,我們可以像下面這樣檢查輸出文件的內容,和它使用的字符編碼。

  1. $ file -i input.file 
  2. $ cat input.file  
  3. $ iconv -f ISO-8859-1 -t UTF-8//TRANSLIT input.file -o out.file 
  4. $ cat out.file  
  5. $ file -i out.file   

 

 

 

在 Linux 中將 ISO-8859-1 轉化為 UTF-8

注意:如果輸出編碼后面添加了 //IGNORE 字符串,那些不能被轉換的字符將不會被轉換,并且在轉換后,程序會顯示一條錯誤信息。

好,如果字符串 //TRANSLIT 被添加到了上面例子中的輸出編碼之后 (UTF-8//TRANSLIT),待轉換的字符會盡量采用形譯原則。也就是說,如果某個字符在輸出編碼方案中不能被表示的話,它將會被替換為一個形狀比較相似的字符。

而且,如果一個字符不在輸出編碼中,而且不能被形譯,它將會在輸出文件中被一個問號標記 ? 代替。

將多個文件轉換為 UTF-8 編碼

回到我們的主題。如果你想將多個文件甚至某目錄下所有文件轉化為 UTF-8 編碼,你可以像下面一樣,編寫一個簡單的 shell 腳本,并將其命名為 encoding.sh:

  1. #!/bin/bash 
  2. ### 將 values_here 替換為輸入編碼 
  3. FROM_ENCODING="value_here" 
  4. ### 輸出編碼 (UTF-8) 
  5. TO_ENCODING="UTF-8" 
  6. ### 轉換命令 
  7. CONVERT=" iconv  -f   $FROM_ENCODING  -t   $TO_ENCODING" 
  8. ### 使用循環轉換多個文件 
  9. for  file  in  *.txt; do 
  10. $CONVERT   "$file"   -o  "${file%.txt}.utf8.converted" 
  11. done 
  12. exit 0 

保存文件,然后為它添加可執行權限。在待轉換文件 (*.txt) 所在的目錄中運行這個腳本。

  1. $ chmod  +x  encoding.sh 
  2. $ ./encoding.sh 

重要事項:你也可以使這個腳本變得更通用,比如轉換任意特定的字符編碼到另一種編碼。為了達到這個目的,你只需要改變 FROM_ENCODING 及 TO_ENCODING 變量的值。別忘了改一下輸出文件的文件名 "${file%.txt}.utf8.converted".

若要了解更多信息,可以查看 iconv 的手冊頁 (man page)。

  1. $ man iconv 

將這篇指南總結一下,理解字符編碼的概念、了解如何將一種編碼方案轉換為另一種,是一個電腦用戶處理文本時必須要掌握的知識,程序員更甚。

***,你可以在下面的評論部分中與我們聯系,提出問題或反饋。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2020-04-06 20:30:37

JavaScriptBoolean開發

2022-12-25 16:15:38

HTMLJava可視化文檔

2021-12-29 07:56:32

Go byte io.Reader

2022-12-25 15:56:30

JavaScript字符串

2021-10-29 15:13:21

LinuxPDF文件

2011-08-25 09:43:51

UTF-8中文man

2010-09-29 11:29:18

UnicodeJ2ME

2021-05-12 07:43:02

LinuxUnicodeUTF-8

2023-01-26 00:31:25

ASCIIBase64UTF-8

2009-12-17 11:45:38

Linux UTF-8

2024-01-04 12:53:00

Unicode字符UTF-8

2020-03-06 08:56:41

Linux運算符文本

2015-11-24 09:53:22

AngularJSXMLJSON

2021-06-07 12:20:14

LinuxASCII命令

2024-05-29 13:05:44

2016-12-13 10:13:18

PHPUTF-8實踐

2011-03-07 12:31:54

Filezilla

2020-09-21 08:56:00

GolangUnicode編碼

2015-09-14 14:49:39

MySQLMariaDBLinux

2021-05-10 19:58:06

MySQLUTF-8數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人欧美一区二区三区在线播放 | 99久久久无码国产精品 | 男女污污网站 | 99国产精品99久久久久久 | 狠狠久 | 国产一区视频在线 | 玖玖色在线视频 | 91麻豆精品国产91久久久久久 | 成人性视频免费网站 | 久久久久久久国产 | 亚洲精品一区二区 | 韩日一区二区 | 日本一区二区三区在线观看 | a级片播放 | 国产精品久久久久久吹潮 | 99热这里有精品 | 精品动漫一区 | 久久久精品高清 | 亚洲天堂二区 | 欧洲免费视频 | 羞羞视频免费观 | 日本成人在线免费视频 | 国产精品久久精品 | 黄a大片 | 99久久精品国产毛片 | 黄色大片在线播放 | 国产精品91网站 | 日韩精品久久久久久 | 欧美freesex黑人又粗又大 | 精品二区视频 | 在线观看亚洲专区 | 少妇一区在线观看 | 特黄一级 | 国产精品久久久久av | 午夜丁香视频在线观看 | 久久国产亚洲精品 | 中文字幕成人 | 黄色片免费看视频 | 亚洲成人中文字幕 | 日韩在线免费视频 | www.亚洲视频 |