首先是查找非utf-8编码的文件:
find . ! -iregex '.*\.svn.*' -type f -regextype posix-extended -regex ".*\.(cpp|cc|c|h)" -exec bash -c "enca -L zh_CN {}|grep GB2312 > /dev/null && echo {}" \;
其次是批量转换:
find . ! -iregex '.*\.svn.*' -type f -regextype posix-extended -regex ".*\.(cpp|cc|c|h)" -exec bash -c "enca -L zh_CN {} | grep GB2312 >/dev/null && enconv -L zh_CN -x UTF-8 {}" \;
如果是Linux平台要安装一下enca,命令:apt-get install enca。