繁体   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