使用Python进行仅限字母数字的编码

2024-06-06 22:42:58 发布

您现在位置:Python中文网/ 问答频道 /正文

python中是否有一个编解码器可以转义所有不在ascii 48-57或65-122范围内的内容(即不是字母数字)

唯一的例外是斜杠和反斜杠字符。你知道吗

理想情况下,我想转换如下内容:

/MyString/My#^/Blah/

对此:

/MyString/My\x23\x5e/Blah/

我知道有一个字符串转义编码做类似的事情,但我需要一个自定义的字符范围进行编码。我正在寻找聪明的建议或模块,可以有效地做到这一点。你知道吗

谢谢!你知道吗


Tags: 内容编码my编解码器字母ascii情况数字
2条回答

我没有研究过这个问题,但是首先想到的是字符串类translate函数。你知道吗

http://docs.python.org/library/string.html#string.translate

如果你把你的编码字符串正确地放在一起(即写一个脚本这样做),翻译应该做的工作。 希望有帮助。你知道吗

可以将re.sub与如下函数参数一起使用:

s = "/MyString/My#^/Blah/"
import re
print re.sub(r'[^\w/\\]', lambda m: '\\x%x' % ord(m.group(0)), s)
#/MyString/My\x23\x5e/Blah/

相关问题 更多 >