How to change a string to Unicode in Python 2?

2019-03-01 10:43发布

I have a string like s1 = "\xed\xf3\xb4\x90".

>>> x = u"\xed\xf3\xb4\x90"
>>> print x
íó´

How could I use s1 to print this?

I have tried:

s1= "\xed\xf3\xb4\x90"
print unicode(s1)

But I could not get íó´. How could I get íó´?

2条回答
ら.Afraid
2楼-- · 2019-03-01 11:13

The correct codec to be used here is 'latin1':

>>> s1= "\xed\xf3\xb4\x90"
>>> print s1.decode('latin1')  # same as: unicode(s1, 'latin1')
íó´

However using 'unicode-escape' also works here as 'unicode-escape' assumes the bytes are encoded in 'latin1' and there are no unicode escapes in the OP's string:

>>> s1= "\xed\xf3\xb4\x90"
>>> print s1.decode('unicode-escape')  # same as: unicode(s1, 'unicode-escape')
íó´
查看更多
叼着烟拽天下
3楼-- · 2019-03-01 11:15

In this case you can decode the str with the latin1 codec.

查看更多
登录 后发表回答