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

如何在Linux中將文件編碼轉(zhuǎn)換為UTF-8

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

[[176269]]

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

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

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

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

  1. 字符            二進(jìn)制 
  2. A               01000001 
  3. B               01000010 

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

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

  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 編碼轉(zhuǎn)換為 UTF-8 編碼

下面,我們將學(xué)習(xí)如何將一種編碼方案轉(zhuǎn)換為另一種編碼方案。下面的命令將會(huì)將 ISO-8859-1 編碼轉(zhuǎn)換為 UTF-8 編碼。

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

  1. � � � � 

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

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

  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 轉(zhuǎn)化為 UTF-8

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

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

而且,如果一個(gè)字符不在輸出編碼中,而且不能被形譯,它將會(huì)在輸出文件中被一個(gè)問號(hào)標(biāo)記 ? 代替。

將多個(gè)文件轉(zhuǎn)換為 UTF-8 編碼

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

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

保存文件,然后為它添加可執(zhí)行權(quán)限。在待轉(zhuǎn)換文件 (*.txt) 所在的目錄中運(yùn)行這個(gè)腳本。

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

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

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

  1. $ man iconv 

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

***,你可以在下面的評(píng)論部分中與我們聯(lián)系,提出問題或反饋。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2020-04-06 20:30:37

JavaScriptBoolean開發(fā)

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文件

2020-03-06 08:56:41

Linux運(yùn)算符文本

2011-08-25 09:43:51

UTF-8中文man

2021-05-12 07:43:02

LinuxUnicodeUTF-8

2010-09-29 11:29:18

UnicodeJ2ME

2023-01-26 00:31:25

ASCIIBase64UTF-8

2024-01-04 12:53:00

Unicode字符UTF-8

2015-11-24 09:53:22

AngularJSXMLJSON

2009-12-17 11:45:38

Linux UTF-8

2015-09-14 14:49:39

MySQLMariaDBLinux

2021-06-07 12:20:14

LinuxASCII命令

2024-05-29 13:05:44

2022-05-31 10:38:50

Linux密碼scp

2016-12-13 10:13:18

PHPUTF-8實(shí)踐

2011-03-07 12:31:54

Filezilla

2020-09-21 08:56:00

GolangUnicode編碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 91社区在线观看高清 | 国产精品一区久久久 | 亚洲激情av| 日本成人片在线观看 | 国产精品爱久久久久久久 | xx视频在线观看 | 伊色综合久久之综合久久 | 亚洲人va欧美va人人爽 | 欧美视频一区二区三区 | 精久久| 华丽的挑战在线观看 | 色婷婷综合久久久中字幕精品久久 | 久热中文字幕 | 日韩在线观看一区 | 亚洲一区二区三区高清 | 91成人影院 | 欧美精品一二区 | 日本三级日产三级国产三级 | 亚洲精品久久久久久久久久久 | 午夜免费| 亚洲精品v日韩精品 | 国产成人a亚洲精品 | 国产精品一区三区 | 亚洲精品中文字幕av | 国产日产欧产精品精品推荐蛮挑 | 欧美日韩在线播放 | 人人干在线视频 | 国产极品粉嫩美女呻吟在线看人 | 能看的av| 天天射影院| 欧洲精品码一区二区三区免费看 | 久久亚洲精品国产精品紫薇 | 在线激情视频 | 亚洲三区视频 | 黑人精品xxx一区一二区 | 色桃网| 欧美一级免费看 | 中国av在线免费观看 | 日韩成人精品在线观看 | 欧美电影免费观看 |