【发布时间】:2011-08-19 22:49:12
【问题描述】:
我找到了this question,这是我的确切起点:mp3 文件上的中文编码元数据。我想将我的所有元数据重新编码为 utf-8,以便 Banshee 可以读取它。
我不知道如何让 eyeD3 做到这一点。我可以根据之前的链接解码单个标签,但我不能让 eyeD3 更改 mp3 文件本身的实际文本编码,因此可以以正确的编码重写这些标签。我尝试将所有数据读入变量(下面,'t' 是正确编码的标题),然后调用:
tag.clear()
tag.update(eyeD3.ID3_V2_4)
tag.setTitle(t)
这告诉我:ValueError: ID3 vNone.None is not supported. 不是我所期待的。
我试过tag.setTextEncoding('utf-8'),但它告诉我eyeD3.tag.TagException: Invalid encoding。我尝试的所有其他编码都会给我相同的错误消息。
eyeD3.TAGS2_2_TO_TAGS_2_3_AND_4 看起来很有希望,但它是一本对我来说毫无意义的神秘字母代码字典。
谁能告诉我如何将标签的版本更改为支持 utf-8 的版本,然后将文件编码更改为 utf-8 并将元数据重新写入?
【问题讨论】:
-
好的,我已经能够使用库的命令行版本来设置文件的版本、编码和元数据,但奇怪的是无法读取现有数据。即,我可以使用python库读取数据但不写入数据,使用命令行库写入数据但不读取数据......
-
啊啊啊啊……我想通了。设置文本编码应类似于
tag.setTextEncoding(eyeD3.UTF_8_ENCODING)。对不起~