Ubuntu下将GBK文件转换为UTF8文件

在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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值