如果你需要在Linux中操作windows下的文 件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是 GBK(gb2312),而 Linux一般都是 UTF-8。下面介绍一 下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。 查看文件编码 在Linux中查看文件编码可以通 过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式。 如果你 只是想查看其它编码格式的文件或者想解决用 Vim查看文件乱码的问题,那么你可以在 ~/.vimrc 文件中添加以下内容: let &termencoding=&encoding set fileencodings=utf-8,ucs-bom,gbk,cp936 这样,就可以让 vim自动识别文 件编码(可以自动识别 UTF-8或者 GBK编码的文件),其实就 是 依照 fileencodings提 供的编码列 表尝 试,如果没 有找 到合适 的编码,就用 latin-1(ASCII)编码打开。 文件编码转换 1.在Vim中直接进行转换文件编码,比如将一个文件转 换成 utf-8格式 :set fileencoding=utf-8 2. iconv 转换,iconv的命令格式如下: iconv -f encoding -t encoding inputfile 比如将一个 UTF- 8 编码的文件转换成 GBK编码 iconv -f GBK -t UTF-8 file1 -o file2 Linux 对一个 3G的文本进行编码转换全过程 本过程中涉及到的Linux的命令有:split, iconv, cat 问题:有一个 3G 的文本 a.txt,编码格式为 gbk,现在需要对其进行转换成为 utf-8。 难点:iconv的转换是在内存中进行的,因此 3G大小的文本,无法 进行直接转换。 思路:先利用 split进行文件切分,然后对每一个字文件进行 ivonv转换,最后进行 cat合并。 1) ll -h a.txt 查看文件的大小,2.9G 2) wc -l a.txt 查看文件的行数,9千200万行 3) split -l 20000000 a.txt chunk 按照每个文件2千万行进行切割,共分成5个文件 4) 进行转换 iconv -f gbk -t utf-8 chunka > chunka_utf8 -c iconv -f gbk -t utf-8 chunkb > chunkb_utf8 -c iconv -f gbk -t utf-8 chunkc > chunkc_utf8 -c iconv -f gbk -t utf-8 chunkd > chunkd_utf8 -c iconv -f gbk -t utf-8 chunke > chunke_utf8 -c 5) rm chunka chunkb chunkc chunkd chunke 删除原文件 6) cat chunk* > a.txt_utf8 进行合并 至此,工作完成 二、 批 量文件编码转换 本操作有风...