你如何解码python中的ascii字符串?

时间:2013-05-11 02:36:32

标签: python string character-encoding ascii

例如,在你的python shell(IDLE)中:

>>> a = "\x3cdiv\x3e"
>>> print a

您得到的结果是:

<div>

但如果a是ascii编码的字符串:

>>> a = "\\x3cdiv\\x3e" ## it's the actual \x3cdiv\x3e string if you read it from a file
>>> print a

您得到的结果是:

\x3cdiv\x3e

现在我真正想要的a<div>,所以我这样做了:

>>> b = a.decode("ascii")
>>> print b

但令人惊讶的是我没有得到我想要的结果,它仍然是:

\x3cdiv\x3e

所以基本上我该怎么做才能将a转换为\x3cdiv\x3eb,这应该是<div>

由于

2 个答案:

答案 0 :(得分:9)

>>> a = rb"\x3cdiv\x3e"
>>> a.decode('unicode_escape')
'<div>'

另请查看一些有趣的codecs

答案 1 :(得分:0)

使用 python 3.x ,您可以将Kabie的答案改编为

a = b"\x3cdiv\x3e"
a.decode('unicode_escape')

a = b"\x3cdiv\x3e"
a.decode('ascii')

都给予

>>> a
b'<div>'

什么是b前缀?

  

字节文字总是以'b'或'B'为前缀;他们生产了一个   字节类型的实例而不是str类型。他们可能只是   包含ASCII字符;数字值为128或更大的字节   必须用逃避来表达。