2012-06-08 12 views
13

Ben alacağı ile bir dize öyle okunabilir hale hangi Python fonksiyonu Python: çıkış yapılmış " xxx"

escaped_data = '\\x50\\x51' print escaped_data # gives '\x50\x51' 

gibi verileri
kaçan sahip

raw_data = unescape(escaped_data) 
print raw_data # would print "PQ" 

cevap

17

string-escape ile kod çözebilirsiniz. Python 3.0 yılında

>>> escaped_data = '\\x50\\x51' 
>>> escaped_data.decode('string-escape') 
'PQ' 

hiçbir string-escape var ama unicode_escape kullanabilirsiniz. Unicode str nesneden

>>> escaped_data = b'\\x50\\x51' 
>>> escaped_data.decode("unicode_escape") 
'PQ' 

: a bytes nesneden

>>> import codecs 
>>> escaped_data = '\\x50\\x51' 
>>> codecs.decode(escaped_data, "unicode_escape") 
'PQ' 
+0

Bunu Python3'te nasıl yapıyorsunuz? – vy32

+0

'unicode_escape', 'bytes' nesnesini kullanabilirsiniz, 'str' nesnelerini yapabilmeniz için yapabilecekleriniz:' import codecs; codecs.decode ('\\ x50 \\ 51', "unicode_escape") '... cevabı düzenledim, birileri bir daha gözden geçirebilir mi? – berdario

-4

Dene:

eval('"' + raw_data + '"') 

Çalışmalı.

+3

Lütfen, 'eval'; raw_data kullanıcı girdiyse ne olur? –

+4

bu eva^Hil. – eumiro

7

Sen 'unicode_escape' codec'i kullanabilirsiniz:

Alternatif
>>> '\\x50\\x51'.decode('unicode_escape') 
u'PQ' 

, 'dize kaçış' size klasik bir Python 2 dize verecektir (Python 3'te bayt):

>>> '\\x50\\x51'.decode('string_escape') 
'PQ' 
3

escaped_data.decode('unicode-escape') yardım eder?

İlgili konular