例如,在你的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\x3e
到b
,这应该是<div>
?
由于
答案 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或更大的字节 必须用逃避来表达。