zoukankan      html  css  js  c++  java
  • 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转码情况。

  • 相关阅读:
    java代码split分割数字类
    P1330 封锁阳光大学
    1022 舞会2
    1626 爱在心中
    P2024 食物链(two)
    P1196 银河英雄传说
    P1892 团伙
    P1546 最短网络(最小生成树)
    烦人的幻灯片(拓扑)
    例4.15 奖金(拓扑排序)
  • 原文地址:https://www.cnblogs.com/wxmdevelop/p/14544683.html
Copyright © 2011-2022 走看看