comment corriger la chaîne misencoded?
Question
pour Mutagène lire les métadonnées mp3, puisque la balise id3 est lu comme unicode, mais en fait, il est GBK codé. comment corriger en python?
audio = EasyID3(name)
title = audio["title"][0]
print title
print repr(title)
produit
µ±Äã¹Âµ¥Äã»áÏëÆðË
u'\xb5\xb1\xc4\xe3\xb9\xc2\xb5\xa5\xc4\xe3\xbb\xe1\xcf\xeb\xc6\xf0\xcb\xad'
mais en fait, il devrait être GBK (chinois).
当你孤单你会想起谁
La solution
Il semble que la chaîne a été décodé en unicode en utilisant le mauvais encodage (latin-1).
Vous devez encoder une chaîne d'octets, puis décoder revenir à unicode en utilisant l'encodage correct.
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')
当你孤单你会想起谁
Autres conseils
On dirait qu'il utilise latin1
auto-décodage. Pour résoudre:
>>> 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')
当你孤单你会想起谁
Testé en Python 2.x mais devrait fonctionner correctement dans 3 ainsi.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow