2016-06-10 4 views
-1

у меня есть этот код:python3 байт строки кодирования

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")) 

, который возвращает мне этот результат:

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' 

Сейчас: Я не могу понять, как правильно отобразить последнюю строку UTF- 8. У вас есть какие-то намеки на меня?

+0

Все это кажется очень излишни - вы должны получать только 'UnicodeEncodeError' если локаль вашей консоли может» t (или думает, что он не может) поддерживает персонажа, который вы печатаете. Вы должны либо исправить свою консоль, либо записать в файл. Ваш последний 'encode()'/'decode()' абсолютно сумасшедший. Это звучит как типичная проблема XY. –

+0

Привет @AlastairMcCormack, да, это абсолютно безумно;) Я провел много испытаний, чтобы получить строку, отформатированную надлежащим образом, и это было моим последним;) Я не могу пишите в файл, и это будет телеграммой, поэтому консоль не будет моим окончательным результатом. –

+0

:) ОК, так что вы работаете над проблемой для ограничения в вашей конкретной консоли, которая не будет существовать в вашем конечном приложении - это плохая идея :) Вы пишете собственный телеграмму бота (не знаете, как UTF-8 может быть выражено в морзе) или чужой? Как бы то ни было, непонятно, что вы спрашиваете –

ответ

0

Я решил с модулем unidecode.

Так что мои последние за сегодня:

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

Надеется, что это поможет кому-то еще :)

Смежные вопросы