2012-05-04 9 views
1

Webインターフェイスからのユーザ入力値をコード化して、私のシステムに安全な場所で渡すことができます方法。言い換えれば、引用符や角括弧などの悪い文字を除外したいのですが。Unicodeを人間が読める、base64(Pythonで)の亜種にコード化する方法はありますか?

私はbase64を使うことができ、うまくいくはずです。しかし、私は文字列がもともと英数字で、下位層で人間が判読可能な形式であれば、その文字列を読むことができるようにしたいと考えています。

したがって、'Nice string''Nice string'にエンコードされますが、'[email protected]!!``string!!))'"N=E2sty=B3=B3=XY=XYstring=B3=B3=B1=B1"のようにエンコードされます。 私はちょうどそれを作ったが、あなたは考えを得る。

このようなエンコード形式は存在しますが、特にそれはPythonで存在します。

答えて

4

についてどのように:

urllib.quote("'[email protected]!!`` string,!!))'",safe=" ,.").replace('%','=') 
'=27N=40sty=21=21=60=60 string,=21=21=29=29=27' 
+0

はあなたがスペースを維持するためにurllib.quoteの第二引数に ''」」を追加することができませんでしたか? – raser

+0

Good point raser :)安全なパラメーターを使用するように編集されました。 –

0

私はPunycodeだと思います。

import encodings.punycode 
encoded = encodings.punycode.punycode_encode(inputstr) 
0

あなたはurllib.quoteを使用することができます。

>>> urllib.quote("Nice String"); 
'Nice%20String' 
>>> urllib.quote("[email protected]!!``string!!))"); 
'N%40sty%21%21%60%60string%21%21%29%29' 
関連する問題