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 看下命令帮助

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,669评论 9 468
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 8,687评论 0 13
  • 古希腊有这样一个故事:相传早年间,有个古庙,去那里抽签,极其灵验,一个国王,生了个儿子,想预知孩子的未来,就去庙里...
    月光晒谷z阅读 363评论 0 0
  • 记得那会岁数小,他爱谈天我爱笑,风在树梢鸟在叫,不知怎么睡着了,梦里花落知多少。 知了的叫声被风吹的一浪高过一浪,...
    唐半仙阅读 475评论 4 9