用Perl实现一个批量文件转码工具

本文介绍了一个使用Perl编写的脚本,该脚本利用iconv库批量将ISO-8859-1编码的文件转换为UTF-8编码。脚本在FreeBSD和Windows环境下均可运行,通过递归遍历目录,对特定类型的源代码文件进行编码转换,并将非转换文件原样拷贝到目标目录。
摘要由CSDN通过智能技术生成

前几天在看Ultimate_ToolBox的源代码,从codeproject上down下来一编译,一堆错误,发现是由于编译器无法识别ISO-8859-1编码,误读有关字符造成的,所以立即着手准备转换程序源文件编码,google了一把,也下了两个小软件,但是都没有批量转换功能,而有这功能的又不支持从ISO-8859-1到UTF-8的转换,于是想到从前在FreeBSD下UTF-8和GB2312互相转换的函数的iconv库 ,我知道iconv不但是一个程序库,而且有一个同名的应用程序能够将文件在两种编码中转换。用这个iconv程序搭配脚本再利用重定向功能应该可以很轻松地完成批量转换文件编码的工作。

在实际编写脚本的过程中,害怕将来运行出现意外,所以并没有将转码过后的文件重定向到源文件上,而是指定了另外一个位置,同时为了将来对Ultimate_ToolBox整个代码编译的方便,对工程目录中不用进行编码的文件,全部原样拷贝到新的位置,这样一个递归遍历目录,批量转换文件编码的小工具就诞生了。

附上Perl的源程序,如果windows下有已经移植过的iconv,则搭配ActivPerl也可以运行在windows环境下。

 

#!/cygdrive/c/Perl/bin/perl
#######################################################
#用途:    批量转换某文件夹内程序源文件的编码,其余文件不变
#
#用法:    $./change_codepage.pl > log.txt

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值