我正在尝试使用 Mutagen 自动化一些 ID3 标记,但是每当我尝试插入 unicode 字符时,我都会将它们替换为问号。
导致此错误的最小测试代码如下
from mutagen.id3 import ID3, TALB
audio = ID3()
audio['TALB'] = TALB(encoding=3, text=u'test祥さtest')
audio.save('test.mp3', v1=2)
运行时,test.mp3 的专辑标签显示test??test
在我的文件管理器和音乐播放器中。如果我通过文件管理器手动输入 unicode 标签,则 unicode 字符会正常显示而不会出现问题。
为了解决这个问题,我已经尝试过的事情:
- 尝试使用和不使用
u
字符串前缀 - 使用备用诱变剂标记语法 (
audio.add(TALB(encoding=3, text=u'test祥さtest'))
)
我正在使用函数的v1=2
参数,save
因为将其排除在外会导致大约一半的文件没有写入标签(并且 unicode 仍然作为问号输出),并且其他值拒绝为任何文件写入 ID3 标签。
我正在使用 Windows 10 64 位。我的 Python 环境是 Anaconda3 (Python3.4) 和 Python2.7,两者都会导致相同的代码出现相同的问题。