Linux 檔案編碼問題及iconv命令

2022-05-09 04:06:07 字數 3593 閱讀 6624

1、 使用file命令來確定檔案編碼:

$ file -bi gbk.txt | sed -e 's/.*[ ]charset=//' |tr '[a-z]' '[a-z'

iso-8859-1

可見test.txt檔案編碼為iso-8859-1編碼。

2、 使用iconv -l確定iconv是否支援此種編碼的轉換:

$ iconv -l | grep iso-8859-1

iso-8859-1//

iso-8859-10//

iso-8859-11//

iso-8859-13//

iso-8859-14//

iso-8859-15//

iso-8859-16//

3、 確定linux/unix作業系統編碼:

$ echo $lang

zh_cn.utf-8

當前作業系統壞境編碼為"utf-8"

4、 轉換編碼

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

測試注:由於file命令常常會誤判編碼,如發現轉換出來的編碼依然是亂碼,可將iconv -f的輸入編碼換成其他常用編碼試試: gbk、big5、hz、gb2312、gb18030、ascii

iconv命令的詳細語法:

iconv [選項..] 檔案

選項:-f 輸入編碼

-t 輸出編碼

-l 列出所有已知的編碼

-o 輸出檔案

附錄字元編碼表:

編碼集:

iso-8859-2

iso 8859-2 standard; iso latin 2

iso-8859-4

iso 8859-4 standard; latin 4

iso-8859-5

iso 8859-5 standard; iso cyrillic

iso-8859-13

iso 8859-13 standard; iso baltic; latin 7

iso-8859-16

iso 8859-16 standard

cp1125

cp1250

ms-windows code page 1250

cp1251

ms-windows code page 1251

cp1257

ms-windows code page 1257; winbaltrim

ibm852

ibm/ms code page 852; pc (dos) latin 2

ibm855

ibm/ms code page 855

ibm775

ibm/ms code page 775

ibm866

ibm/ms code page 866

baltic

iso-ir-179; baltic

keybcs2

kamenicky encoding; keybcs2

macce

macintosh central european

maccyr

macintosh cyrillic

ecma-113

ecma cyrillic; ecma-113

koi-8_cs_2

koi8-cs2 code ('t602')

koi8-r

koi8-r cyrillic

koi8-u

koi8-u cyrillic

koi8-uni

koi8-unified cyrillic

tex(la)tex control sequences

ucs-2

universal character set 2 bytes; ucs-2; bmp

ucs-4

universal character set 4 bytes; ucs-4; iso-10646

utf-7

universal transformation format 7 bits; utf-7

utf-8

universal transformation format 8 bits; utf-8

cork

cork encoding; t1

gbksimplified chinese national standard; gb2312

big5

traditional chinese industrial standard; big5

hzhz encoded gb2312

行結束符:

/lflf line terminators

/crlf

crlf line terminators

n.a.

mixed line terminators

n.a.

surrounded by/intermixed with non-text data

/21byte order reversed in pairs (1,2 -> 2,1)

/4321

byte order reversed in quadruples (1,2,3,4 -> 4,3,2,1)

n.a.

both little and big endian chunks, concatenated

/qpquoted-printable encoded

各國語言編碼集:

bulgarian

cp1251 iso-8859-5 ibm855 maccyr ecma-113

czech

iso-8859-2 cp1250 ibm852 keybcs2 macce koi-8_cs_2 cork

estonian

iso-8859-4 cp1257 ibm775 iso-8859-13 macce baltic

croatian

cp1250 iso-8859-2 ibm852 macce cork

hungarian

iso-8859-2 cp1250 ibm852 macce cork

lithuanian

cp1257 iso-8859-4 ibm775 iso-8859-13 macce baltic

latvian

cp1257 iso-8859-4 ibm775 iso-8859-13 macce baltic

polish

iso-8859-2 cp1250 ibm852 macce iso-8859-13 iso-8859-16 baltic cork

russian

koi8-r cp1251 iso-8859-5 ibm866 maccyr

slovak

cp1250 iso-8859-2 ibm852 keybcs2 macce koi-8_cs_2 cork

slovene

iso-8859-2 cp1250 ibm852 macce cork

ukrainian

cp1251 ibm855 iso-8859-5 cp1125 koi8-u maccyr

chinese

gbk big5 hz

Linux檢視檔案編碼格式及檔案編碼

如果你需要在 linux 中操作windows下的檔案,那麼你可能會經常遇到檔案編碼轉換的問題。windows中預設的檔案格式是gbk gb2312 而linux一般都是utf 8。下面介紹一下,在linux中如何檢視檔案的編碼及如何進行對檔案進行編碼轉換。檢視檔案編碼 在linux中檢視檔案編碼可...

Linux檢視檔案編碼格式及檔案編碼轉換

如果你需要在linux 中操作windows下的檔案 那麼你可能會經常遇到檔案 編碼 轉換的問題。windows中預設的檔案 格式是gbk gb2312 而linux 一般都是utf 8。下面介紹一下,在linux 中如何檢視 檔案 的編碼 及如何進行對檔案 進行編碼 轉換。檢視 檔案 編碼 在li...

Linux檢視檔案編碼格式及檔案編碼轉換

如果你需要在linux 中操作windows下的檔案,那麼你可能會經常遇到檔案編碼轉換的問題。windows中預設的檔案格式是gbk gb2312 而linux一般都是utf 8。下面介紹一下,在linux中如何檢視檔案的編碼及如何進行對檔案進行編碼轉換。檢視檔案編碼 在linux中檢視檔案編碼可以...