用perl脚本解决ant…非法字符:\65279…的问题
用perl脚本解决ant…非法字符:\65279…的问题
用ant管理项目,编译时发现有些utf8编码的java文件无法编译,
报错是…非法字符:\65279…。
在网上查N多与ant有关的文章,但是大多数的解决方案都不是很理想。因为文件比较多,而且我的
机器上也没有装editplus。
索性自己用perl写了一个脚本
如下:
#remove the utf-8 BOM for Ant sub remove_bom { #open( my $in, "+<", "src/com/umpay/wap20/mobileProxy/MobileProxy.java" ); foreach my $filename (@_) { print $filename,"\n"; open( my $in, "+<", $filename ); @lines = <$in>; $line1 = $lines[0]; $t_chk1 = substr( $line1, 0, 1 ); #0xef -> 239 $t_chk2 = substr( $line1, 1, 1 ); #0xbb -> 187 $t_chk3 = substr( $line1, 2, 1 ); #0xbf ->191 if ( ord($t_chk1) == 239 && ord($t_chk2) == 187 && ord($t_chk3) == 191 ) { $line1 = substr( $line1, 3 ); seek( $in, 0, 0 ); print $in $line1; } close $in; } } &remove_bom("src/com/umpay/wap20/mobileProxy/MobileProxy.java" ,"src/com/umpay/wap20/security/GeneralKeyPairs.java" ,"src/com/umpay/wap20/security/RSAUtil.java" ,"src/com/umpay/wap/pages/WML.java");
其中remove_bom方法就是处理有问题的文件的方法。
把你的项目中出现问题的文件名称一个一个的放到remove_bom的参数列表中就可以了。ant,BOM,ant,BOM
最后运行这个perl文件。之后再运行ant就可以了。