Como corrigir a corda descontada?
Pergunta
eu usei mutagênico Para ler os metadados do MP3, já que a tag ID3 é lida como Unicode, mas na verdade é codificada GBK. Como corrigir isso no Python?
audio = EasyID3(name)
title = audio["title"][0]
print title
print repr(title)
produz
µ±Äã¹Âµ¥Äã»áÏëÆðË
u'\xb5\xb1\xc4\xe3\xb9\xc2\xb5\xa5\xc4\xe3\xbb\xe1\xcf\xeb\xc6\xf0\xcb\xad'
Mas, de fato, deve estar em GBK (chinês).
当你孤单你会想起谁
Solução
Parece que a string foi decodificada para unicode usando a codificação errada (latim-1).
Você precisa codificá -lo a uma string de byte e, em seguida, decodificá -la novamente ao Unicode usando a codificação correta.
title = u'\xb5\xb1\xc4\xe3\xb9\xc2\xb5\xa5\xc4\xe3\xbb\xe1\xcf\xeb\xc6\xf0\xcb\xad'
print title.encode('latin-1').decode('gbk')
当你孤单你会想起谁
Outras dicas
Parece que é decodificação automática usando latin1
. Consertar:
>>> title = u'\xb5\xb1\xc4\xe3\xb9\xc2\xb5\xa5\xc4\xe3\xbb\xe1\xcf\xeb\xc6\xf0\xcb\xad'
>>> print title.encode('latin1').decode('GBK')
当你孤单你会想起谁
Testado no Python 2.x, mas deve funcionar bem em 3 também.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow