如何使用Python转换八进制转义序列

3

我从PDF文件中提取了JavaScript代码,但它被转换成八进制转义序列。

我想将其转换为正常的JavaScript代码。

\040\040\040\040\146\165\156\143\164\151\157\156\040\163\167\050\051\17....

请给我建议。


如果您实际上有一个包含反斜杠的字符串(例如,通过从PDF中读取数据),请参见链接的重复内容。如果您只是在源代码中有类似的内容,那么不需要做任何操作。 - Karl Knechtel
2个回答

3
你可以使用 unicode_escape 编码: 在 Python 2.x 中:
>>> r'\040\040\040\040\146\165\156\143\164\151\157\156'.decode('unicode-escape')
u'    function'

在Python 3.x中:
>>> br'\040\040\040\040\146\165\156\143\164\151\157\156'.decode('unicode-escape')
'    function'

1

这适用于Python 2.x和3.x:

>>> b'\040\040\040\040\146\165\156\143\164\151\157\156\040\163\167'.decode('utf-8')
'    function sw'

如果您使用转义序列(非原始字符串),则无需使用decode - falsetru
1
是的,但最终你得到的是一个字节数组而不是字符串。 - user3286261
你说得对。如果没有decode调用,你将得到一个bytes对象。(但仅适用于Python 3.x) - falsetru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接