我有一些需要非轉義的轉義字符串。我想用Python做到這一點。我如何在Python3中使用.decode('string-escape')?
例如,在python2.7我可以這樣做:
>>> "\123omething special".decode('string-escape')
'Something special'
>>>
如何做到在Python3?這不起作用:
>>> b"\123omething special".decode('string-escape')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
LookupError: unknown encoding: string-escape
>>>
我的目標是成爲阿貝爾採取這樣的字符串:
s\000u\000p\000p\000o\000r\000t\[email protected]\000p\000s\000i\000l\000o\000c\000.\000c\000o\000m\000
,把它變成:
"[email protected]"
我做轉換後,我會探測一下,看看我的字符串是用UTF-8還是UTF-16編碼的。
試試這個:'字節( 「\ 123omething特」, 「UTF-8」)解碼( 「unicode_escape」)' – 2013-02-11 20:41:07
你是絕對肯定的是逃逸,而不是字面字節? – 2013-02-11 20:47:05
它們是字面字節!有一個反斜槓,然後是0,然後是0,然後是第三個0 ...我有一個程序讀取二進制文件並輸出這樣的信息。它輸出實際在文件中的二進制文件。有時文件的內容是UTF-8編碼的,它只是通過。但是如果它不是有效的UTF-8,它就會以這種方式進行編碼。 – vy32 2013-02-11 20:48:18