#
最近遇到一个大项目,项目使用的encoding 有GBK也有UTF-8, 在intellij中虽然可以一个一个conver,但是感觉太慢了,并且reload为UTF-8也不是长久之计,在Git中仍然是乱码。
查阅了一些资料,写个脚本终于批量把gbk 转换为 utf-8了。
这是在mac 10.13中测试的示例。按名称查找文件,转换编码,然后替换原始文件。完美。

    1. 新建一个名为 ConvertEncoding.sh文件
    1. 将下面的完整代码复制到shell脚本中。
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
find ./ -name *.java -type f | \
(while read file;
do if [[ "$file" != *.DS_Store* ]]; then
if [[ "$file" != *-utf8* ]]; then
iconv -f GBK -t UTF-8 "$file" > "$file-utf8";
rm $file;
echo mv "$file-utf8" "$file";
mv "$file-utf8" "$file";
fi
fi
done);

./ 要替换为自己的项目文件夹。
-w655

    1. 把shell文件拖到terminal中 enter执行。
1
2
3
4
5
6
7
8
bogon:~ username$ /Users//Documents/batchconvert.sh 
-bash: /Users/username/Documents/batchconvert.sh: Permission denied
bogon:~ username$ chmod 777 batchconvert.sh
chmod: batchconvert.sh: No such file or directory
bogon:~ username$ chmod 777 /Users/username/Documents/batchconvert.sh
bogon:~ username$
bogon:~ username$
bogon:~ username$ /Users/username/Documents/batchconvert.sh

其中 chmod 777 /Users/username/Documents/batchconvert.sh是给batchconvert.sh赋予全新啊。

Fork me on GitHub