大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
linux下文件编码格式转换方法(gb18030/utf-8)
专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业奎文免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
在 Linux 做开发或者系统管理遇到乱码是经常的事情,主要windows下中文的默认编码是bg2312,而 linux下是utf-8。很多时候 涉及到和windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换,即:
iconv -f gb18030 -t utf-8 file1.txt -o file2.txt
说实话这个命令不好使,一方面容易重复转换,另一方面不支持通配符,无法成批转 换,文件少了还好说,要是一大堆文件岂不是要累死?
今天我要推荐的是另一个 Shell 下编码转换工具enca。用它不仅可以转换编码,还可以查看文件的原始编码,而且还支持成批转换。使用上也比iconv方便一些。安装enca很简单,一般用源安装就行了,enca用法如下:
enca -L 当前语言 文件名
enca -L zh_CN file //检查文件的编码
enca -L 当前语言 -x 目标编码 文件名
enca -L zh_CN -x UTF-8 file //将文件编码转换为”UTF-8″编码
enca -L zh_CN -x UTF-8 file1 file2 //如果不想覆盖原文件可以这样
除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来, 而”iconv”则会报错。这对于脚本编写是比较方便的事情。
i).在 Vim 中可以直接查看文件编码(shift + :)输入set fileencoding 即可显示文件编码格式。
如果你只是想查看其它编码格式的文件或者想解决用 Vim 查看文件乱码的问题,那么你可以在 ~/.vimrc 文件中添加以下内容: set
encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 这样, 就可以让 vim 自动识别文件编码
(可以自动识别 UTF-8或者 GBK 编码的文件) ,其实就是依照 fileencodings
提供的编码列表尝试,如果没有找到合适的编码,就用 latin-1(ASCII)编码打开。
ii). enca (需要安装)查看文件编码:$enca filename filename: Universal
transformation format 8 bits; UTF-8 CRLF line terminators 需要说明一点的是,enca
对某些 GBK 编码的文件识别的不是很好,识别时会出现: Unrecognized encoding
iii)还有一种很简单的方式,file 文件名 可以查看非elf文件的编码格式
在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:setfileencoding,即可显示文件编码格式。2.enca(如果你的系统中没有安装这个命令,可以用sudoyuminstall-yenca安装)查看文件编码
下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。
一,查看文件编码:在Linux 中查看文件编码可以通过以下几种方式:
1.在Vim中可以直接查看文件编码:setfileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc文件中添加以下内容:setencoding=utf-8fileencodings=ucs-bom,utf-8,cp936这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。
2.enca(如果你的系统中没有安装这个命令,可以用sudoyuminstall-yenca安装)查看文件编码#36;encafilenamefilename:Universaltransformationformat8bits;UTF-8CRLFlineterminators需要说明一点的是,enca对某些GBK编码的文件识别的不是很好,识别时会出现:Unrecognizedencoding
二,文件编码转换
1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式:setfileencoding=utf-8 2.iconv转换,iconv的命令格式如下:输入/输出格式规范:-f,--from-code=名称原始文本编码-t,--to-code=名称输出编码信息: 列举所有已知的字符集输出控制:-c从输出中忽略无效的字符-o,--output=FILE输出文件Svn8.Com-s,--s ilent关闭警告--verbose打印进度信息-?,--help给出该系统求助列表--usage给出简要的用法信息-V,--version打印程序版本号 例子:iconv-futf-8-tgb2312aaa.txtbbb.txt这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。iconv-fencoding-tencodinginputfile比如将一个UTF-8编码的文件转换成GBK编码iconv-fGBK-tUTF-8file1-ofile2
3.enconv转换文件编码比如要将一个GBK编码的文件转换成UTF-8编码,操作如下enconv-Lzh_CN-xUTF-8filename