下查看文件字符编码和转换编码,Linux下文件字符

作者:计算机知识

脚下大部分动静下, 我们相遇的非英文字符文件都以运用UTF-八编码的, 那时一般大家查阅那些文件的内容都不会不平日. 不过有的时候, 大家有不小希望会遇见非UTF-8编码的公文, 譬喻普通话的GBK编码, 或然乌克兰(УКРАЇНА)语的CP1251编码. 而文本文件一般不带有自己编码格式的音信, 那就给大家管理带来繁多麻烦. 本文介绍多少个Linux命令来检查实验和改换文本文件的编码格式.

如果您须要在Linux中操作windows下的文本,那么你可能会时不经常遇上文件编码转变的主题素材。Windows中暗许的文件格式是GBK(gb231二),而Linux一般都是UTF-八。上面介绍一下,在Linux中怎么着查看文件的编码及怎么着开始展览对文本实行编码转变。

下查看文件字符编码和转换编码,Linux下文件字符编码格式检测和转换。Linux查看文件编码格式及文件编码调换

检查实验文件编码格式

enca 命令名是Extremely Naive Charset Analyser的缩写, 从它这些卖萌的名字来看, 应该能够用来检验文件的编码格式.

一,查看文件编码:

 

安装 enca

在Ubuntu下, 能够运用以下命令安装

apt-get install enca

在Linux中查阅文件编码能够经过以下三种办法:

只要您要求在Linux 中操作windows下的文本 ,那么您大概会时临时遇上文件 编码 调换的主题素材。Windows中私下认可的文书 格式是GBK(gb231贰),而Linux 一般都以UTF-8。上面介绍一下,在Linux 中怎样查看 文件 的编码 及怎样开始展览对文本 实行编码 转变。

采纳模式

它最轻巧易行的选取方法如下:

# enca test.txt
Simplified Chinese National Standard; GB2312

上面的test.txt是叁个带有普通话GB231二编码的文件文件. 依照 enca 的文书档案, 当我们运气好的时候, 就足以根据地点不加多任何额外参数的景色下, 检查评定出文件的编码格式. 而就自己的经验来看, Linux的言语设置是四个震慑运气的因素. 上边的操作在默许语言为普通话的Linux中, 行为就能够仿佛上边给出的结果正确的检查测试出文件的中文编码格式. 而当LInux默以为英文时, 运气就不会那么好了.

# enca test.txt
enca: Cannot determine (or understand) your language preferences.
Please use `-L language', or `-L none' if your language is not supported
(only a few multibyte encodings can be recognized then).
Run `enca --list languages' to get a list of supported languages.

根据 enca 的失实提醒, 大家须要给它提供-L参数来界定须要检验的文本语言.

率先, 大家必要探视当前系统下 enca 帮忙的语言和对应的编码类型:

# enca --list languages
belarusian: CP1251 IBM866 ISO-8859-5 KOI8-UNI maccyr IBM855 KOI8-U
 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
      none:

在本身的测试情状中, enca 匡助上述的语言和编码. 能够见到普通话是chinese: GBK BIG5 HZ, 于是, 我们得以尝尝以下参数组合:

# enca -L chinese test.txt
Simplified Chinese National Standard; GB2312

这时, enca 给出了1个鲜明的答案.

默许情状下, enca 给出的是人可读的编码格式名, 比方下面的 Simplified Chinese National Standard; GB2312. 而不经常, 大家会愿意交给的结果给其它命令或然程序接纳, 比方, 大家愿意整合 iconv 命令来退换文件编码, 能够增加-i来让 enca 给出相应的次序可用编码名:

# enca -i -L chinese test.txt
GBK

一.在Vim中能够直接查看文件编码

 

转变文件编码格式

在知晓了文本的精确性编码格式之后, 大家一再会希望将文件转变为UTF8之类常用或许系统私下认可帮助的编码格式, 以便后续进一步管理.

:set fileencoding

查看 文件 编码

使用 enca 进行调换

当我们给 enca 命令增添-x参数时, enca 命令就能够将文件变换为-x参数钦命的编码格式:

# enca -L chinese test.txt
Simplified Chinese National Standard; GB2312
# enca -x UTF8 -L chinese test.txt
# enca -L chinese test.txt
Universal transformation format 8 bits; UTF-8

能够观察, 在实行enca -x UTF8 -L chinese test.txt命令后, 文件 test.txt 的编码从GB2312调换为了UTF八. 注意 , enca 命令会将源文件覆盖, 所以使用这些命令时, 要注意备份源文件.

就能够展现文件编码格式。

在Linux 中查看 文件 编码 能够由此以下二种方法:

使用 iconv 实行调换

iconv 是*nix系统里的改造字符编码的正规化命令和API. 假如大家愿意将3个GBK编码的文本调换为UTF八编码, 能够以以下方法使用 iconv 命令:

# iconv -f GBK -t UTF8 test.txt

其中test.txt是要被改造的文书, -f GBK参数表示源文件的编码是GBK, -t UTF8则象征要更改的目的编码. 试行以上命令后, iconv 命令会将转移后的文本内容打字与印刷到专门的职业输出.

若是指望将转移后的源委保留到文件, 能够增加-o参数:

    # iconv -f GBK -t UTF8 -o test_converted.txt test.txt 

本条命令就能够将改换后的原委自动保存到 test_converted.txt 文件.

通过 iconv -l则能够查看全数的字符集名称. 前文也事关enca -i则足以用来输出 iconv 可用的文件编码名.

借使您只是想查看别的编码格式的文本只怕想缓解用Vim查看文件乱码的主题素材,那么你能够在

1.在Vim 中能够直接查看 文件 编码

仿照效法资料

  • enconv(1) - Linux man page
  • wiki - iconv
  • libiconv

~/.vimrc 文件中加上以下内容:

:set fileencoding

set encoding=utf-8

就可以呈现文件 编码 格式。

fileencodings=ucs-bom,utf-8,cp936

若果你只是想查看 别的编码 格式的公文 可能想化解用Vim查看 文件 乱码的主题素材,那么您能够在

如此那般,就能够让vim自动识别文件编码(能够自行识别UTF-捌只怕GBK编码的文本),其实正是依照fileencodings提供的编码列表尝试,假如未有找到适当的编码,就用latin-1(ASCII)编码打开。

~/.vimrc 文件 中增添以下内容:

  1. enca (倘令你的体系中从不设置这几个命令,能够用sudo yum install -y enca 安装 )查看文件编码

 

$ enca filename

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

filename: Universal transformation format 8 bits; UTF-8

 

CRLF line terminators

如此那般,就足以让vim自动识别文件 编码 (可以活动识别UTF-八也许GBK编码 的文书 ),其实即是遵照 fileencodings提供的编码 列表尝试,借使未有找到确切的编码 ,就用latin-1(ASCII)编码 张开。

须要验证一些的是,enca对少数GBK编码的公文识别的不是很好,识别时会出现:

  1. enca (假诺您的系统中未有设置那个命令,能够用sudo yum install -y enca 安装 )查看 文件 编码

Unrecognized encoding

$ enca filename

Linux 下查看文件字符编码和转移编码PDF版下载地址:

filename: Universal transformation format 8 bits; UTF-8

免费下载地址在

CRLF line terminators

用户名与密码都以www.linuxidc.com

亟需证美素佳儿些的是,enca对有个别GBK编码 的文本 识其余不是很好,识别时会出现:

切实下载目录在 /2011年龄资历料/Linux基础知识/Linux 下查看文件字符编码和改动编码/

Unrecognized encoding

本文由bwin必赢发布,转载请注明来源

关键词: