2015-06-09 5 views
7

Я пытаюсь написать файл в Python, и я не могу найти способ, чтобы декодировать объект байт перед записью файла, в основном, я пытаюсь расшифровать эти байты строки:Python 3.4 декодирования байты

Les \xc3\x83\xc2\xa9vad\xc3\x83\xc2\xa9s 

в это, что оригинальный текст, который я пытаюсь восстановить:

Les évadés 

Я попытался с помощью .decode ('UTF-8') и кодирование ('UTF-8'), но ничего не кажется для работы ...

Я всегда получаю Les évadés в результате ... Я использую python 3.4.3

Любой может помочь?

+3

Python3 использует utf8 как кодирование по умолчанию. Откуда вы взяли эту строку? –

+1

Вы показываете, что utf-8 интерпретируется так, как если бы он был латинским-1. Я предполагаю, что Python производит правильный вывод, но все, что вы печатаете, должно ожидать латинского-1, а не utf-8. –

+0

Откуда взялась строка? –

ответ

0

Что вам нужно сделать, это расшифровать и затем закодировать:

s = "Les \xc3\x83\xc2\xa9vad\xc3\x83\xc2\xa9s" 
utf = s.decode('utf-8') 
latin = utf.encode("latin-1","ignore") 
print latin 

-> Les уклоняется

+0

Как, черт возьми, я получаю downvoted, когда я даю правильный ответ ??? –

3

И если вы хотите питон 3 решения:

b = b'Les \xc3\x83\xc2\xa9vad\xc3\x83\xc2\xa9s' 
u = b.decode('utf-8').encode('latin-1').decode('utf-8') 
print(u) 
# Les évadés 
+0

Отличная детективная работа! – holdenweb