【发布时间】:2009-03-19 22:54:03
【问题描述】:
我现在正在学习 python 和 PyGTK,并创建了一个简单的音乐管理器。 http://pastebin.com/m2b596852 但是当它用挪威字母 æ、ø 和 å 编辑歌曲时,它只是将它们更改为一个奇怪的字符。
那么有什么好的方法可以打开或将名称编码为 utf-8 字符吗?
上面代码中两个相关的地方:
从文件中读取信息:
def __parse(self, filename):
"parse ID3v1.0 tags from MP3 file"
self.clear()
self['artist'] = 'Unknown'
self['title'] = 'Unknown'
try:
fsock = open(filename, "rb", 0)
try:
fsock.seek(-128, 2)
tagdata = fsock.read(128)
finally:
fsock.close()
if tagdata[:3] == 'TAG':
for tag, (start, end, parseFunc) in self.tagDataMap.items():
self[tag] = parseFunc(tagdata[start:end])
except IOError:
pass
打印到 sys.stdout 信息:
for info in files:
try:
os.rename(info['name'],
os.path.join(self.dir, info['artist'])+' - '+info['title']+'.mp3')
print 'From: '+ info['name'].replace(os.path.join(self.dir, ''), '')
print 'To: '+ info['artist'] +' - '+info['title']+'.mp3'
print
self.progressbar.set_fraction(i/num)
self.progressbar.set_text('File %d of %d' % (i, num))
i += 1
except IOError:
print 'Rename fail'
【问题讨论】:
-
tagdata[start:end].decode("utf-8")产生了什么错误?