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

  • 相关阅读:
    thinkphp redis实现文章点赞功能并同步入mysql
    phpstorm2020.1最新版永久破解
    mysql修改sql_mode为宽松模式
    用为知发布博客到博客园、使用Wiz编写和发布博客园(cnblogs)博客
    Vim命令大全
    Vim教程
    GDB教程详解
    TCMalloc 对MYSQL 性能 优化的分析
    TCMalloc 安装和使用
    使用Tcmalloc进行堆栈分析
  • 原文地址:https://www.cnblogs.com/wxmdevelop/p/14544683.html
Copyright © 2011-2022 走看看