[英]Encode/decode specific character in string with hex notation using Python 2.7
如何編碼字符串“ banana”,使所有字母變成\\ x97?
b\x97n\x97n\x97
然后,如何將嵌入了十六進制值的字符串反向或解碼回原始的字符串香蕉?
使用str.replace
將該字符替換為其序數值的十六進制表示。 為了獲得實際的字符串,您可以使用string-decode
。
>>> s = 'banana'
>>> print s.replace('a', '\\x' + format(ord('a'), 'x'))
b\x61n\x61n\x61
>>> print s.replace('a', '\\x' + format(ord('a'), 'x')).decode('string-escape')
banana
要做到這一點,並保持編碼為標准ASCII而不是十六進制...
import re
s = 'banana'
t = s.replace('a', '\\x{}'.format(ord('a')))
subs = re.findall(r'\\x\d{2}',t)
decoded = ""
for match in set(subs):
decoded = t.replace(match, chr(int(match[2:4]))
print decoded
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.