wie die misencoded Zeichenfolge zu korrigieren?
Frage
i verwendet Mutagen die MP3-Metadaten zu lesen, da der ID3-Tag eingelesen als Unicode, aber es ist in der Tat GBK codiert. wie dies in Python korrigieren?
audio = EasyID3(name)
title = audio["title"][0]
print title
print repr(title)
erzeugt
µ±Äã¹Âµ¥Äã»áÏëÆðË
u'\xb5\xb1\xc4\xe3\xb9\xc2\xb5\xa5\xc4\xe3\xbb\xe1\xcf\xeb\xc6\xf0\xcb\xad'
, aber in der Tat soll es in GBK (chinesisch) sein.
当你孤单你会想起谁
Lösung
Es sieht aus wie die Zeichenfolge in Unicode decodiert wurden die falsche Codierung (Latin-1).
Sie müssen es auf einen Byte-String kodieren und dann auf Unicode dekodieren wieder die richtige Codierung.
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')
当你孤单你会想起谁
Andere Tipps
Sieht aus wie es die Auto-Decodierung mit latin1
. Um dies zu beheben:
>>> 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')
当你孤单你会想起谁
in Python 2.x getestet, sollte aber fein in 3 so gut.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow