0

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

唯一的例外是斜杠和反斜杠字符。

理想情况下,我想转换这样的东西:

/MyString/My#^/Blah/

对此:

/MyString/My\x23\x5e/Blah/

我知道有类似的字符串转义编码,但我需要一个自定义的字符范围进行编码。我正在寻找可以有效执行此操作的巧妙建议或模块。

谢谢!

4

2 回答 2

2

您可以使用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/
于 2012-07-06T06:14:55.180 回答
0

我没有研究这个,但首先想到的是字符串类翻译函数。

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

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

于 2012-07-06T06:02:03.097 回答