文件编码格式转换

Posted linux运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件编码格式转换相关的知识,希望对你有一定的参考价值。

常常在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下的记事本打开,选择另存为……,改变编码即可。

 

以上是关于文件编码格式转换的主要内容,如果未能解决你的问题,请参考以下文章

怎么把文件的编码格式转换成ANSI

怎么把文件的编码格式转换成ANSI

linux编码转换问题

Unity拓展工具批量更改脚本文件的编码格式 (unity中脚本文件的编码格式从ANSI转换到UTF8出现乱码)

Linux 文件编码格式转换

如何批量修改linux 文件编码格式