返回信息流很早以前用bash配合id3lib做过一个,但是有点不好用。
昨天又想起来了,用Perl做的。做得有些简陋。
需要Perl的MP3::Info和Encode包。
#!/usr/bin/perl -w
use strict;
use MP3::Info;
use Encode qw(from_to);
if ( scalar @ARGV == 0 ) {
print <<END
USAGE: $0 file_name [ file_name ] ...
END
;
exit 0;
}
foreach my $file (@ARGV) {
if ( not -f $file ) {
print "Error: '$file' is not a regular file!\n";
next;
}
my $tag = get_mp3tag($file) or die "No TAG info";
for my $key (keys %$tag) {
#print $key,": ",$tag->{$key},"\n";
eval {
defined from_to($tag->{$key},"gb2312","UTF-8",Encode::FB_CROAK);
} or die "$file: Error: Problem converting encoding!\n";
#print $key,": ",$tag->{$key},"\n";
#print $key,": ",encode("utf8",decode("gb2312",$tag->{$key})),"\n";
}
remove_mp3tag($file,"ALL") or die "Cannot Remove Tag";
set_mp3tag($file,$tag) or die "Cannot Set Tag";
print "$file: Converted successfully!\n";
}
#### END OF FILE ####
附:使用方法:
1)确认你有perl,而且安装了MP3:Info包。
2)创建一个文本文件,把上面的脚本贴进去。
3)给这个脚本加上“可执行”权限
$ chmod +x thefilename
4)执行这个脚本,参数是被转换文件:
$ /path/to/thefilename thefiletoconvert.mp3
这是一条镜像帖。来源:北邮人论坛 / focus / #1131同步于 2007/11/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Focus机器人发帖
我的简单Perl脚本:把MP3里的ID3从gb转换成utf8
GMoto
2007/11/30镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。