页面

2011年7月31日

关于mp3文件CJK标签编码的问题

前言

mp3音轨文件正确显示CJK(中日韩)标签一直是个老问题,下面说说我对CJK标签编码问题的一些看法。

试验环境

  • Windows 7 32bit
  • Foobar v1.1.7
  • Mp3tag v2.45a
  • iTunes 10.4.0.80
  • Amarok 2.4.1
  • mp3文件若干个

修订记录

  1. 2011-8-5 17:51
    • 新增内容:截图。添加了Google Music、Foobar2000、Android 2.1下的CJK标签截图。

mp3文件的标签编码格式

ID3

  • ID3v1

    因为ID3v1只能用ISO-8859-1编码,严格来说它是不支持中文的(但你仍然可以储存GB2312/GBK/GB18030编码的中文信息),而一些播放器和手持设备默认是用ISO-8859-1来读取ID3v1标签的,所以会遇到乱码的问题。

  • ID3v2

    ID3v2又分为ID3v2.2、ID3v2.3、ID3v2.4三个版本(据说还有一个ID3v2.1,但找不到相关的资料),编码方式有ISO-8859-1、UTF-16和UTF-8

    • ID3v2.2 UTF-16LE:iTunes默认使用该编码
    • ID3v2.3 UTF-16BE:Windows Media Player默认使用该编码
    • ID3v2.3 ISO-8859-1:和ID3v1一样
    • ID3v2.4 UTF-8:2.3的升级版。iTunes支持,但Windows全系列不支持(包括Windows 7)

APEv2

因为和ID3v2.4一样,也是使用UTF-8编码,但Windows全系列都不支持,相对于ID3v2.3没有优势。


最后的选择

ID3v2.3 UTF-16。这样Windows、iTunes、Amarok和手持设备都不会出现乱码。


批量把mp3文件修改成ID3v2.3标签编码格式

可以批量修改标签编码格式的软件我只知道有Foobar2000和Mp3tag两款,没有使用过Linux下的工具,不清楚。

Foobar2000

一、按 Ctrl+P 打开选项,然后按照图一设置

↑ 图一


二、由于新版的Foobar2000(v1.1.7)在右键菜单里隐藏了Rewrite file tags命令,所以需要先为这个命令设置一个快捷键

↑ 图二


三、然后去到播放列表里,将所以需要转换的mp3都添加进来并全选,按下图二里第四步设置的快捷键(例如我设置为 Win+0),然后等待Foobar2000处理完成即可。


Mp3tag

一、按 Ctrl+O 打开选项,然后按照图三设置(因为只需要ID3v2.3,所以其他如ID3v1、APEv2都不选)

↑ 图三


二、修改工作目录

↑ 图四

↑ 图五


三、写入标签。首先全选所有音轨文件,右键选择“保存标签”

↑ 图六


如果出现如图七所示,一个音轨文件有多种标签,可以选择这个音轨文件,右键选择“清除标签”(当然也可以批量处理),这里的清除标签是按照图三里第三步的设置清除的。

↑ 图七


等待Mp3tag处理完成后,所以的音轨文件都只剩下ID3v2.3标签了。


截图

Google Music


Foobar2000


Android 2.1


题外话:各类标签编码的测试

Amarok与ID3v1

设置音轨只有一个ID3v1的标签


标准情况下,Amarok是使用ISO-8859-1来读取ID3v1的,所以遇到中文的情况就会乱码,而且遗憾的是,Amarok 2.4.1还不支持读取内嵌封面图片。


这样的乱码情况同样会出现在一些手持设备上,除非这些手持设备是特别为兲朝“优化”了的。


Windows和iTunes对ID3v2.4的支持问题

本来想做ID3v1、ID3v2.3、ID3v2.4三个版本的对比,但由于ID3v1不支持内嵌封面图片,所以只测试ID3v2.3、ID3v2.4两个

先用Mp3tag修改了三个音轨的编码格式


在Windows Explorer下,ID3v2.3正常显示音轨信息,连内嵌图片也正常;但ID3v2.4却不能显示。


iTunes下则两个都正常显示



全文完

没有评论:

发表评论