我在阅读一些带有冰岛字母的 id3 标签时遇到了问题。
一个来自 shell 的简单示例。
>>> audio = mutagen.easyid3.EasyID3('./Björk/Albums/1990 - Gling-Gló [mp3-231]/01 - Gling-Gló.mp3')
>>> audio['title']
5: [u'Gling-Gl\xf3']
首先,我不确定如何检查标签所在的字符编码。根据我收集到的信息,这是使用诱变剂的方法:
>>> audio = mutagen.id3.ID3('./Björk/Albums/1990 - Gling-Gló [mp3-231]/01 - Gling-Gló.mp3')
>>> for key, value in audio.items():
... print value.encoding
这将为每个项目输出“0”。
我在某处看到对于 id3 标签,数字 0 表示字符串是 iso-8859-1 编码的,但我不知道从那里去哪里。我想这不对吧?
>>> audio.get('artist')[0].decode('iso-8859-1')
14: u'Bj\xc3\xb6rk'
正如您可以说的那样,当涉及到字符编码问题时,我感到非常困惑。
我想要的只是将标签捕获为正确的 utf-8 字符串,以便我可以将它们放入我的数据库中。这只是一个例子,我想我可能会遇到其他一些编码完全不同的文件,所以我正在寻找一个好的全方位解决方案。只是解决这个问题真的会帮助我走上正轨。
提前致谢。