批量转换纯文本文件编码

Windows下的纯文本文件拷贝到Linux下打开后经常会出现乱码,尤其是中文部分,这主要是因为WIndows使用的是ANSI编码,也就是GBK/GB2312/GB18030系列编码(互相兼容),而Linux下是utf-8编码,所以彩绘出现乱码

幸好Linux下有一个iconv命令,可以实现内码转换

NAME
       iconv - Convert encoding of given files from one encoding to another

SYNOPSIS
       iconv -f encoding [-t encoding] [inputfile]...

比如将gbk编码的文件f.txt转换成utf-8编码

iconv -f gbk -t utf-8 f.txt g.txt
rm -f f.txt
mv g.txt f.txt

如果要转换的文件较多,则最好通过shell脚本完成

例如要将ifly子目录下的所有头文件(gbk编码)都转换成utf-8编码,则脚本如下

for f in `ls ifly`; do
    iconv -f gbk -t utf-8 "ifly/"$f > "ifly2/"$f
done
rm -rf ifly
mv ifly2 ifly 

可以看到为for命令提供列表的是ls命令,对于更复杂的场景可以将其替换成更复杂的命令,比如find加xargs什么的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值