在windows下編輯的代碼拿到Linux下不能用,原因時Windows下都是GBK編碼,而Linux下中文會出現亂碼情況。
勉強寫了一個腳本,但只能改變當前目錄下的文件,還不能嵌套改變下層文件夾裏面的文件。還有如果已經有存在UTF-8編碼的文件,裏面又恰好有中文,會出現錯誤的。。。先記着,以後再改進吧
#!/bin/bash
#GBK2UTF-8
function convert() {
for file in `ls $1`
do
if test ! -x $file
then
iconv -f GBK -t UTF-8 $file > $file.bak
#rm $file
echo remove old $file...
#echo $file.bak
string_len=`echo "$file.bak" | wc -m`
string_len=$[$string_len-5]
#echo $string_len
filename=`echo $file.bak | cut -c1-$string_len`
echo copy to new file: $filename
mv $file.bak $filename
fi
done
}
convert
另外,還寫了單獨改一個文件的腳本,也還可以優化,以後多學學shell
#!/bin/bash
#one file GBK2UTF-8
echo "Please input filaname:"
read file
iconv -f GBK -t UTF-8 $file > $file.bak
rm $file
mv $file.bak $file