1

我想对来自 Web 界面的用户输入值进行编码,以便我可以以安全的方式将数据传递到我的系统中。换句话说,我想去掉我认为不好的字符,例如引号和括号等。

我可以使用 base64,它可以正常工作。但是,如果字符串最初是较低层的人类可读格式的字母数字,我希望能够读取这些字符串。

因此,'Nice string'将被编码为'Nice string''N@sty!!``string!!))'会被编码为类似"N=E2sty=B3=B3=XY=XYstring=B3=B3=B1=B1". 我只是编造的,但你明白了。

是否存在这种编码格式,尤其是在 python 中是否存在。

4

3 回答 3

4

怎么样:

urllib.quote("'N@sty!!`` string,!!))'",safe=" ,.").replace('%','=')
'=27N=40sty=21=21=60=60 string,=21=21=29=29=27'
于 2012-05-04T14:09:36.663 回答
0

我认为Punycode会满足您的需求。

import encodings.punycode
encoded = encodings.punycode.punycode_encode(inputstr)
于 2012-05-04T14:03:29.663 回答
0

你可以使用urllib.quote

>>> urllib.quote("Nice String");
'Nice%20String'
>>> urllib.quote("N@sty!!``string!!))");
'N%40sty%21%21%60%60string%21%21%29%29'
于 2012-05-04T14:07:16.163 回答