前言
mp3音轨文件正确显示CJK(中日韩)标签一直是个老问题,下面说说我对CJK标签编码问题的一些看法。
试验环境
- Windows 7 32bit
- Foobar v1.1.7
- Mp3tag v2.45a
- iTunes 10.4.0.80
- Amarok 2.4.1
- mp3文件若干个
修订记录
- 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标签了。
截图
题外话:各类标签编码的测试
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下则两个都正常显示
全文完