linux4-iconv

做数据转换,遇到一个问题就是程序只处理utf8带bom格式的文件,需要把GB2312格式的转码。(ps:经理定死了处理文件就是带BOM的UTF8,呵呵。)
一开始打算用java写个转换吧,字符流输入输出,貌似还挺麻烦。
String转换等等,测试起来也麻烦。
那就放弃吧!!
python有没有简单而不简约的方法呢,那就直接找linux shell吧。那就发现了iconv,问题突然变得好简单。

Linux 下的 iconv 命令可以来处理字符编码的转换,基本命令格式如下:

 iconv -f 原始编码 -t 目标编码 文件名 > 新文件名

(-f 代表 from,-t 代表 to)

     iconv -l #查看支持的编码

iconv --help 看下命令帮助

linux4-iconv_第1张图片
iconv help

假设我要把 GB2312 编码文件转换成 UTF-8, 且保存为,那么命令如下:

iconv -f GB2312 -t utf-8 textgb2312.txt > text-utf8.txt

----------------------我是分割线--------------------不对称的分割线--------------------
这个方法转出来的文件是utf8格式,但是不带bom 啊。那么还得转化一步,加上bom:

sed -i '1 s/^/\xef\xbb\xbf&/'

完整的命令我也记录下:

find ./log/ -type f -name "*utf8*" -print | xargs -i sed -i '1 s/^/\xef\xbb\xbf&/' {}

参考:
http://codingstandards.iteye.com/blog/807077
http://blog.sina.com.cn/s/blog_50ebb8ad0102vkg3.html

你可能感兴趣的:(linux4-iconv)