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转码情况。

  • 相关阅读:
    OpenCV---直方图反向投影
    OpenCV---直方图的应用(均衡化和图像比较)
    ASP.NET WEB SERVICE 创建、部署与使用
    DataSet和DataTable有用的方法
    黑客网站
    局域网中工作组和域之间的差别
    索引使用原则(精)
    C# Web Service 初级教学
    Extjs下拉多选框
    如何在UltraEdit中高亮显示PB代码
  • 原文地址:https://www.cnblogs.com/wxmdevelop/p/14544683.html
Copyright © 2011-2022 走看看