将 GBK 编码的 MP3 标签转换为 UNICODE。
因为在 Linux 下,大部分处理 MP3 的程序,都是用了 libid3tag 来处理 MP3 文件的 ID3 标签的。而因为安装的系统的问题,大部分人都会使用 UTF-8 编码。这样就导致到 GB2312/GB18030/GBK 编码的 MP3 文件在 Linux 下显示都是乱码。如果文件不多的话,手动修改也没有什么大碍,但是有鉴于本人比较懒,所以再次搜索,上网搜索解决方案。
经过一番搜索之后,找到了周枫的个人主页(http://www.zhoufeng.net/eng/id3iconv/),以及他网站上公布的一个叫做 ID3iconv 的小工具。
使用这个小工具,可以进行 ID3 编码的转换。需要注意的是,这个程序是用 Java 编写的。所以我们还需要安装一个 Java Runtime:
# sudo apt-get install sun-java6-jre
安装完成后可以用如下命令来运行该程序:
# java -jar id3iconv-0.2.1.jar
这里我们使用 -e 和 -remove1 两个参数,其中 -e 用来指定原始的编码格式,-removev1 用来移除 v1 版本的标签:
java -jar id3iconv-0.2.1.jar -e gbk -removev1 *.mp3
如果连子目录内的文件也需要转换的话,使用如下命令:
find . -iname "*.mp3" -execdir java -jar id3iconv-0.2.1.jar -e gbk -removev1 {} \;
这个转换工作在 Ubuntu Hardy上测试通过。