• Java 工程批量编码转换,从GBK到UTF-8


    完整命令:

    find src -name *.java -exec sh -c "cp {} {}.gbk; iconv -f GBK -t UTF8 -c {}.gbk > {}; rm {}.gbk" ;
    

    (适用于Mac或者Linux,Cygwin下应该也可以)

    尝试过程

    前几天有一个需求,希望把一个测试工具工程从GBK批量转换到UTF-8,搜了很多工具,一直没有找到很好用的。

    网上搜索到的大部分都是下面这个命令:

    find *.py -exec sh -c "iconv -f GB18030 -t UTF8 {} > {}.py" ;
    

    这个命令可以解决把一个文件,从-f编码转换到-t编码,并且另存为另外一个文件,我更希望能够直接覆盖原文件,所以改成下面这样:

    find *.py -exec sh -c "iconv -f GB18030 -t UTF8 {} > {}" ; // 去掉了 .py
    

    但是发现目标文件变成空的了(猜测是iconv转码IO如果同一个文件,会有读写冲突问题)。
    想了一个策略,先把原文件复制一份,然后读取备份文件,转码后保存到原文件中,并删除冗余的备份文件。命令行如下:

    find src -name *.java -exec sh -c "cp {} {}.gbk; iconv -f GBK -t UTF8 -c {}.gbk > {}; rm {}.gbk" ;
    

    批量转码成功,一共100个文件左右,验证OK。

    建议:最好结合svn或者git版本管理软件进行转码迁移,过程中有问题可以随时reset或者revert回去,并且commit前可以使用版本管理软件自带的diff功能review转码情况。

  • 相关阅读:
    web进修之—Hibernate 继承映射(5)
    web进修之—Hibernate 类型(4)
    web进修之—Hibernate 关系映射(3)
    web进修之—Hibernate起步(1)(2)
    poj2828(Buy Tickets)线段树
    hdu2795(Billboard)线段树
    hdu1394(Minimum Inversion Number)线段树
    hdu4407Sum(容斥原理)
    树的重心
    匈牙利算法
  • 原文地址:https://www.cnblogs.com/wxmdevelop/p/14544683.html
Copyright © 2020-2023  润新知