78、iconv简单使用
1、如果需要在Linux中操作windows下的文件,那么可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。
2、在Vim中可以查看文件编码
:set fileencoding
解决用Vim查看文件乱码的问题,在
~/.vimrc中添加以下内容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
3、文件编码转换
1)在Vim中直接进行转换文件编码,如将一个文件转换成utf-8格式
:set fileencoding=utf-8
2)enconv 转换文件编码,如要将一个GBK编码的文件转换成UTF-8编码:
enconv -L zh_CN -x UTF-8 filename
3)iconv转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
如将一个UTF-8 编码的文件转换成GBK编码
iconv -f UTF-8 -t GBK file1 -o file2
4、iconv选项
① -c 从输出中忽略无效的字符
② -o, --output=FILE 输出文件
③ -f, --from-code=名称 原始文本编码
④ -t, --to-code=名称 输出编码
⑤ -l, --list 列举所有已知的字符集
⑥ --usage 给出简要的用法信息
5、批量转换[4]
假设当前目录下有foo1.txt foo2.txt .... foon.txt都是GB2312内码,将他们全部专程BIG5内码,并在后面加上BIG5作为后缀。创建一个脚本gb2312_2_big5.sh,内容如下:
ls *.txt |while read i
do iconv -f GB2312 -t BIG5 $i>$i.big5
done
保存之后执行
sh gb2312_2_big5.sh
参考
【1】 Linux查看文件编码格式及文件编码转换
http://blog.csdn.net/jznhljg/article/details/3410750
【2】 本文讲述的是iconv的c语言库版本,非常值得一读
http://550480286.blog.163.com/blog/static/990932472010102451858555/
http://qq164587043.blog.51cto.com/261469/63349
【3】 对选项进行了详细的介绍
http://www.cnblogs.com/morebetter/archive/2005/05/28/164099.html
【4】 批量转换