come correggere la stringa misencoded?
Domanda
mutageno di leggere i metadati mp3, dal momento che il tag ID3 viene letta come unicode ma in realtà è codificato GBK. come correggere questo in Python?
audio = EasyID3(name)
title = audio["title"][0]
print title
print repr(title)
produce
µ±Äã¹Âµ¥Äã»áÏëÆðË
u'\xb5\xb1\xc4\xe3\xb9\xc2\xb5\xa5\xc4\xe3\xbb\xe1\xcf\xeb\xc6\xf0\xcb\xad'
, ma in realtà dovrebbe essere in GBK (cinese).
当你孤单你会想起谁
Soluzione
Sembra che la corda è stato decodificato in Unicode utilizzando la codifica sbagliata (latin-1).
È necessario codificare una stringa di byte e poi decodificarlo indietro in Unicode utilizzando la codifica corretta.
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')
当你孤单你会想起谁
Altri suggerimenti
Sembra che sia auto-decodifica usando latin1
. Per risolvere il problema:
>>> 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')
当你孤单你会想起谁
Testato in Python 2.x, ma dovrebbe funzionare bene in 3 pure.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow