簡體   English   中英

使用Python 2.7以十六進制表示法對字符串中的特定字符進行編碼/解碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM