【发布时间】:2015-01-29 22:54:47
【问题描述】:
我有一个带有转义数据的字符串,比如
escaped_data = '\\x50\\x51'
print escaped_data # gives '\x50\x51'
什么 Python 函数会取消它,所以我会得到
raw_data = unescape( escaped_data)
print raw_data # would print "PQ"
【问题讨论】:
标签: python
我有一个带有转义数据的字符串,比如
escaped_data = '\\x50\\x51'
print escaped_data # gives '\x50\x51'
什么 Python 函数会取消它,所以我会得到
raw_data = unescape( escaped_data)
print raw_data # would print "PQ"
【问题讨论】:
标签: python
您可以使用string-escape 进行解码。
>>> escaped_data = '\\x50\\x51'
>>> escaped_data.decode('string-escape')
'PQ'
在Python 3.0 中没有string-escape,但您可以使用unicode_escape。
来自bytes 对象:
>>> escaped_data = b'\\x50\\x51'
>>> escaped_data.decode("unicode_escape")
'PQ'
来自 Unicode str 对象:
>>> import codecs
>>> escaped_data = '\\x50\\x51'
>>> codecs.decode(escaped_data, "unicode_escape")
'PQ'
【讨论】:
unicode_escape,对于bytes对象,是一样的......对于str你可以做的对象:import codecs; codecs.decode('\\x50\\51', "unicode_escape")......我编辑了答案,有人可以同行回顾一下?
您可以使用“unicode_escape”编解码器:
>>> '\\x50\\x51'.decode('unicode_escape')
u'PQ'
或者,'string-escape' 会给你一个经典的 Python 2 字符串(Python 3 中的字节):
>>> '\\x50\\x51'.decode('string_escape')
'PQ'
【讨论】:
escaped_data.decode('unicode-escape') 有帮助吗?
【讨论】:
试试:
eval('"' + raw_data + '"')
它应该可以工作。
【讨论】:
eval;如果 raw_data 是用户输入怎么办?