文件名: encodeExchange.sh
Linux版本:
#!/bin/bash fEncode=UTF-8 tEncode=GBK #fEncode=GBK #tEncode=UTF-8 files="Classes/*" # convert file's encoding from GBK->UTF-8 or UTF-8->GBK convertFileEncode() { if [ $# -lt 3 ]; then echo "Usage: convertFileEncode <files> <fromEncode> <toEncode>" else files=$1 fEncode=$2 tEncode=$3 for i in `ls $files` do t=`file $i | grep UTF-8 | wc -l` if [ "UTF-8" = $fEncode -a $t -eq 1 ] || [ "UTF-8" = $tEncode -a $t -eq 0 ] ; then iconv -f $fEncode -t $tEncode $i -o $i echo "iconv -f $fEncode -t $tEncode $i -o $i" fi done fi } convertFileEncode "$files" $fEncode $tEncode
在Mac OS X中发现 iconv 命令并不认识"-o"选项,所以真正转换那句要改成如下形式:
iconv -f $fEncode -t $tEncode $i > tmp; mv tmp $i