通常来说,Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,所以Linux下打开windows的文件会有乱码的情况。另外,有时要将文件进行编码转换,如将简体中文转换为繁体中文。

基于以上情况,本文将就在linux下查看和转换文件的编码进行说明。

1.查看文件的编码

1)在Vim中可以直接查看文件编码
    :set fileencoding    即可显示文件编码格式。


2)enca查看文件编码
    # enca filename        直接用enca加文件名查看
    # enca -L zh_CN filename
    注:enca对某些GBK编码的文件识别不是很好,识别时会出现:unrecognized encoding.

2.转换文件的编码

1)在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
    :set fileencoding=utf-8

2)enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,如:
    # enconv -L zh_CN -x UTF-8 filename
    # enca -L zh_CN -x UTF-8 < file1 > file2        不覆盖原文件

3)iconv 转换,iconv的命令格式如下:
   # iconv -f encoding -t encoding inputfile
   # iconv –l    查询可用编码
   # for i in `find ./ -name *.html`;do echo $i;iconv –f gb2312 –t big5 $i –o /tmp/iconv.tmp;mv /tmp/iconv.tmp $i;done