shell脚本-批量gbk转utf-8

这里写自定义目录标题

背景

原因很简单,当初工程拆分,把老代码的gbk文件原封不动的挪到了新的工程,gradle编译已经指定了options.encoding = “UTF-8” 但是还是会出现gbk乱码导致编译不成功。只怪自己太菜不会用gradle解决,只能退而求其次用shell脚本进行gbk转utf-8.

代码

#!/bin/sh
isEnc() 
 { 
   local temp=`iconv -f $2 $1 1>/dev/null 2>/dev/null && echo 'true'`;
   echo $temp
   
  if [ "$temp" = 'true' ]; then
    return 0;
  fi;
  return -1;
 } 

echo "h.sh directory c"
echo "h.sh directory h"
for file in `find $1 -name "*.$2"`;
do
if  $(isEnc $file gbk); then
    echo convering : $file
    iconv -f GBK -t utf-8 $file > $file.t
    mv $file.t $file
  fi;
   
done    
echo DONE


碰到的问题

一开始简单粗暴地进行GBK转utf-8没想到,会出现utf-8转utf-8的情况导致本来utf-8的文件出现了乱码,后面只能想法子判断下文件编码格式。简单粗暴的在do 循环中判断,却发现local只能在function中使用一次(还是我太菜),只能将判断方法单独封装了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值