Linux下文件编码格式转换

2019-02-13 04:57:16 5624

常常在Linux中操作Windows下的文件时,会遇到乱码的情形。常见的比如在Visual Studio 中写的C\C++程序需要放到Linux主机上编译,而程序的中文注释则显示为乱码,比较严重的是由于编码原因,Linux上的编译器报错。


这是由于Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。那么如何在Linux中如何查看文件的编码及如何进行对文件进行编码转换呢?

1、用VIM查看文件编码


在Vim 中可以直接查看文件编码


:set fileencoding


即可显示文件编码格式。


2、 改写~/.vimrc 文件


如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在


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


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


这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照 fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。


3、 用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 输出到文件


4、 通过记事本另存为来改变文件编码;


既用Windows下的记事本打开,选择另存为……,改变编码即可。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: