最近公司在做银接通的项目,本地linux主机的系统编码为utf-8,在本地编写C程序用来生成批量文件后再FTP到目标机器被解析,可目标机器系统编码为GBK,解析结果不正确,究其原因为编码不同,下面是一个能将文件编码为utf8转换为gbk的脚本,实现了要求。
#!/bin/bash
#usage: ./utf8-gbk.sh oldDir newDirfunction fun_dir(){
for child in `ls $1`
do
if [[ -f $1/$child ]]
then
echo "convert $1/$child"
iconv -f utf-8 -t gb2312 $1/$child > $2/$child
if (( $? != 0 ))
then
cp $1/$child $2/$child
echo "cp $1/$child $2/$child"
fi
elif [[ -d $1/$child ]]
then
mkdir $2/$child
fun_dir $1/$child $2/$child
fi
done
}
if (( $# != 2 ))
then
echo "parameter error"
exit
fi
fun_dir ${1%/} ${2%/}