Python 3.4 decode bytes

3.3k views Asked by At

I am trying to write a file in python, and I can't find a way to decode a byte object before writing the file, basically, I am trying to decode this bytes string:

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

into this, which is the original text I'm trying to recover:

Les évadés

I tried using the .decode('utf-8') and encode('utf-8') but nothing seems to work...

I always get Les évadés as a result... I am using python 3.4.3

Anyone can help?

2

There are 2 answers

1
E.T On

What you need to do is to decode and then encode:

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

--> Les évadés

0
James Pringle On

And if you want a Python 3 solution:

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