Я извлекаю текст из документа Excel и добавляю его как теги id3 в некоторые файлы mp3. Большинство символов в моем документе Excel — русские (Unicode), но некоторые — английские. Когда я запускаю скрипт, все английские теги записываются как метаданные правильно, но все русские символы отображаются как вопросительные знаки. Если я печатаю русские символы в своей консоли, они отображаются отлично. Почему они пишутся как вопросительные знаки?
Питон
from mutagen.easyid3 import EasyID3
import xlrd
import glob
import re
import os
for name in glob.glob('*.mp3'):
audio = EasyID3(name)
wb = xlrd.open_workbook('xl.xls')
sh = wb.sheet_by_name(u'Russian')
col_b = 1
col_c = 2
col_e = 4
col_g = 6
col_i = 8
col_k = 10
for i in range(sh.nrows):
row = sh.row_values(i)
for j in range(len(row)):
if row[j] == name:
audio["title"] = sh.cell(i,col_e).value
audio["author"] = sh.cell(i,col_i).value
audio["copyright"] = sh.cell(i,col_g).value
audio["album"] = sh.cell(i,col_k).value
audio["discsubtitle"] = sh.cell(i,col_c).value
audio.save()
print "All MP3 MetaData Parsed!"
mutagen.easyid3
и модуль, который он содержит,mutagen.id3
, похоже, классEasyID3
предназначен для правильного кодировать символы вне диапазона ASCII. Поэтому я не уверен, в чем ваша проблема, если только ошибка не заключается в том, какxlrd
обрабатывает символы, отличные от ASCII. - person JAB   schedule 07.06.2012SyntaxError: Non-ASCII character '\xd0' in file mp3.py on line 21, but no encoding declared
Затем я включил# -*- coding: utf-8 -*-
вверху моего скрипта, та же ошибка. - person user1442957   schedule 07.06.2012