批量转换字符编码perl脚本iconvs-v0.5.pl

继用iconv批量转换字符编码PHP脚本http://blog.linuxphp.org/archives/445/ 和 iconv.sh批量转换编码shell http://blog.linuxphp.org/archives/956/ 后又出了perl编写的版本,这次的功能更强大。

 

PHP版本:

最简单,遍历目录比较低效,还只能针对指定目录做跳过,指定文件改动较复杂。

shell版本:

通过调用linux的find命令遍历目录,通过-name参数对文件后缀做过滤。但不能对文件编码做智能判断,如已是UTF-8再按gbk转utf-8会乱码

perl版本在之前的基础上编写有以下特点

  1. 可接收参数执行,不需要改程序
  2. 对.svn目录自动过滤
  3. 可通过find的-name参数对文件后缀做过滤
  4. 对文件编码做判断,二进制文件,空文件,纯英文文件,与目标编码相同文件都不做编码转换
  5. 自动将windows的换行符\r\n替换为linux的\n,从而去掉代码中的^M符号
  6. 记录文件转码日志

 

使用方法

将下载的文件重命名为iconvs.pl放入系统/usr/bin/目录下,不要放在要转换的目录下,那样它本身也会被转码

直接执行iconvs.pl或/usr/bin/iconvs.pl查看帮助

1.jpg

大小: 32.35 K
尺寸:  x 
浏览: 31 次
点击打开新窗口浏览全图

转换当前目录下的所有文件为utf-8

iconvs.pl ./ * gbk utf-8

 

转换当前目录下的所有CSS文件为utf-8

iconvs.pl ./ *.css gbk utf-8

 

除了“查找的目录”是必须要传的参数外,其它都有默认值,如转换当前目录下的所有文件为utf-8可简写为

iconvs.pl ./ 

 

疑问?

问:为什么我执行完后有的文件还是us-ascii类型?

答:那是因为文件为全英文的,不需要转码。

iconvs-v0.5.pl (2.65 K, 下载次数:100, 上传时间:2012-05-29 10:40)

Tags: iconv , 转码

上一篇: Discuz! 技术文库,插件开发   下一篇: 出现了一个PHP脚本占用系统内存50%

提交疑问

回顶部