批量转换字符编码的实例(iconv)

前言

借的书里光盘有C代码,

可也抄来看看,

但中文说明乱码。

行如:// 68ΪÎÕÊÖÏûÏ¢µÄ¹Ì¶š³€¶È

而且文件较多,

以 .c|.h结尾,

手动改的话就太笨了,

发挥linux shell的优势的时候来了。

 

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/sh
#iconv2
#批量转换字符编码

ls -al | awk '/.c|h/{print $9 >"l.txt"}'
#将LS出来的结果,管道到,用AWK找到第九列中为.c或.h的文件,输出到L.txt

while read list #读取(read)l.txt,将read的结果命名为 list

do
echo $list; #显示list的neir
iconv -f gb18030 -t utf-8 $list > $list.new;
#将list的编码从gb18030改为utf8,输入list.new中
rm $list; #删除list文件(未转码的)
mv $list.new $list; #将list.new文件重命名为list

done < l.txt #从l.txt输入


rm l.txt;rm iconv2.sh; #删除l.txt与iconv2.sh

 

 
注意:chmod u+x iconv2.sh 执行:./iconv2.sh