页面

2011年8月5日

解决Google Music里的标签乱码问题

前言

一些说明

  • Google Music:这里并不是谷歌音乐搜索(www.google.cn/music),而是2011年5月10日发布的Music Beta by Google(music.google.com),下文的Google Music都是指后者
  • 下文所示范的音乐都是后缀为mp3的音频文件,并且所有音频信息(如:专辑名、作曲家等)都是内嵌在音频文件中而非外挂cue方式
  • CJK:中文(Chinese)、日文(Japanese)和韩文(Korean)的首字母简称。
  • ID3:mp3文件标签编码的其中一种,有v1、v2.3、v2.4等多个版本。

注意:目前因为Google Music会自动将flac无损音频格式转换成320kbps的mp3(via),所以没必要上传巨大的无损音频文件了,转换成mp3再上传吧。

下图为测试用的两首音乐,一首是ID3v1编码,另一首是ID3v2.3 UTF-16编码。


乱码的由来

开始把上面的那两首歌上传到Google Music。


虽然ID3v1标签的mp3在某些播放器(泛指PC端播放软件和手持设备)里能显示中文,但ID3v1并不是真正支持中文,因为ID3v1默认是用ISO-8859-1编码的,然而ID3(包括ID3v1和ID3v2)并不强制按照要求用指定的编码来写标签,所以只要你喜欢,你仍然可以用GBK/Big5等非标准的编码来写标签,当一个播放器用默认的ISO-8859-1编码来读取那些按GBK/Big5编码写入的ID3v1标签时,就会遇到乱码。一些“聪明”的播放器自己会猜这些标签的编码类型,如果猜对了(GBK, Big5,…)就能正确显示,不然也是乱码,这就是为什么总是有人问为什么某某播放器会显示乱码的原因,其实错不在那些播放器上。

从上面可以得知:

  1. ID3并没有强制只能使用默认的编码
  2. 要防止乱码出现,必须按照ID3默认的编码方式来写入标签
所以,想要真真正正完完全全彻彻底底的杜绝mp3乱码问题,我个人建议使用ID3v2.3 UTF-16的编码方式,虽然ID3v2.4 UTF-8和APEv2也可以,但前者的兼容性目前明显比后两者要高,详细的可以参考另一篇文章《关于mp3文件CJK标签编码的问题》。

注意:ISO-8859-1编码并不包含CJK支持,所以ID3v1和ID3v2.3 ISO-8859-1都不能正常显示CJK字符。(via


解决乱码问题

如果还没开始玩Google Music,那么建议先将自己想上传的所有mp3都转换成ID3v2.3 UTF-16的编码吧。

下面说说如何重新上传改好标签编码后的mp3。因为如果一首mp3已经上传过了,然后又在本地改了这首mp3的标签,这时Music Manager是不会自动重新上传的(至少 v1.0.13.4485的Windows版不会),即使将Google Music端所以乱码的音乐都删除,Music Manager仍然不会上传改动后的mp3文件。个人觉得以后的版本会改掉这个问题的,或许你使用时已经没有这种烦恼了 \(^ω^\)


为了能重新上传,这时只能先暂时改变Music Manager监视的目录,比如改成监视My Music folder文件夹(里面最好没有任何音频文件),点Apply。然后再改回原来的目录,这时Music Manager能正常的上传改动后的mp3了。



截图

最后上一张我的Google Music截图


全文完

没有评论:

发表评论