2012-06-06 5 views
1

У меня есть mp3 с тегом исполнителя на русском языке. Все английские метаданные печатаются нормально, но русский отображается как вопросительные знаки. Как заставить модуль использовать кодировку unicode или utf8?python id3 тег unicode

питон

from ID3 import * 
import glob 
import re 
import os 
for name in glob.glob('*.mp3'): 
    id3info = ID3(name) 
    print id3info 

Я использую эту библиотеку: http://id3-py.sourceforge.net/

+0

Поскольку нет стандартной библиотеки, называемой ID3, и нескольких разных сторонних библиотек, которые вы могли бы использовать, вы должны сообщить нам, какой из них она есть, прежде чем мы сможем помочь. – abarnert

+0

Плохо, я включил то, что сейчас использую – Blainer

+0

Хорошо, ответ: не используйте этот модуль ... См. Ниже. – abarnert

ответ

3

Вы не можете сделать Unicode в ID3v1, и что модуль делает только ID3v1 (и это даже не сделать это правильно).

Если вы явно пытаетесь пометить свои файлы для какого-либо приложения только для ID3v1, вам действительно нужно выяснить, как обмануть это приложение при чтении русских символов. Скорее всего, это будет невозможно. Но если нет, то вы можете обмануть свою библиотеку ID3v1 в выводе строк, которые обманут ваше приложение, вручную предварительно обработав строки.

Однако, если вы пытаетесь пометить свои файлы для любого современного приложения, просто используйте Mutagen, Stagger, PyTagLib или что-то еще, что не устарело на десять лет. Они все экспортируют действительный Unicode в тегах ID3v2 и делают все возможное с тегами ID3v1 (что обычно невелика, но обычно это не имеет значения).

Смежные вопросы