常常在Linux中操作windows下的文件时,会遇到乱码的情形。常见的比如在Visual Studio 中写的C\C++程序需要放到Linux主机上编译,而程序的中文注释则显示为乱码,比较严重的是由于编码原因,linux上的编译器报错。
这是由于Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。那么如何在Linux中如何查看文件的编码及如何进行对文件进行编码转换呢?
用VIM查看文件编码
在Vim 中可以直接查看文件编码
:set fileencoding
即可显示文件编码格式。
~/.vimrc 文件中添加以下内容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
用ICONV文件编码转换
我们利用iconv工具对文件的编码进行转换。
iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个GBK 编码的文件转换成UTF-8编码
iconv -f GBK -t UTF-8 file1 -o file2
其中的参数的意义表示
-f From 某个编码
-t To 某个编码
-o 输出到文件