2016-06-10 13 views
-1

i diesen Code haben:python3 Bytes String-Codierung

res = conn.getresponse() 
data = res.read() 

doc = xmltodict.parse(data) 

risultati = doc['result']['data'] 

mieiris = json.loads(risultati) 

for k in mieiris['Headword']['Component']: 
    try: 
     print(k['Text']) 
    except KeyError: 
     pass 
    except UnicodeEncodeError: 
     uhm = k['Text'].encode("utf-8") 
     print(uhm.decode("unicode_escape")) 

, die mich dieses Ergebnis zurück:

b'ci\xc3\xa0-o' 
inter. 
si usa come saluto amichevole e confidenziale quando ci si incontra o ci si lascia 
b'Dal ven. {\\i s{#c-v-r#}iao}, propr. \xe2\x80\x98(sono vostro) schiavo\xe2\x80\x99' 

jetzt: Ich kann nicht herausfinden, wie man richtig mit UTF- die letzte Zeichenfolge anzuzeigen 8 Codierung. Hast du Hinweise für mich?

+0

Das alles scheint sehr überflüssig - Sie sollten nur 'UnicodeEncodeError' wenn Ihre Konsole locale kann‘ bekommen t (oder denkt, dass es nicht möglich ist) unterstützt den Charakter, den Sie drucken. Sie sollten entweder Ihre Konsole reparieren oder stattdessen in eine Datei schreiben. Dein letztes 'encode()'/'decode()' ist total verrückt. Das klingt nach einem typischen XY-Problem –

+0

Hallo @AlastairMcCormack, ja, es ist total verrückt;) Ich habe eine Menge Versuche unternommen, um die Zeichenfolge richtig formatiert zu bekommen, und das war meine letzte;) Ich kann nicht schreibe in eine Datei und dies wird ein Telegramm-Bot sein, so dass die Konsole nicht meine endgültige Ausgabe sein wird. –

+0

:) ok, so arbeiten Sie um ein Problem für eine Beschränkung in Ihrer spezifischen Konsole, die nicht in Ihrer endgültigen App existiert - das ist eine schlechte Idee :) Schreiben Sie Ihr eigenes Telegramm Bot (nicht sicher, wie UTF-8 kann in Morse ausgedrückt werden oder jemand anderes? Wie es steht, ist es unklar, was Sie fragen –

Antwort

0

Ich habe mit Unidecode-Modul gelöst.

Also für meine letzte ist jetzt:

for k in mieiris['Headword']['Component']: 
    try: 
     print(k['Text']) 
    except KeyError: 
     pass 
    except UnicodeEncodeError: 
     print(unidecode(k['Text'])) 

Hoffnung, dass dies jemand anderes :)

helfen