HTTPからアンエスケープPythonの文字列
質問
私は、HTTPヘッダーから文字列を持っているが、私がそれをアンエスケープするために使用することができますどのような機能..エスケープされています?
myemail%40gmail.com -> myemail@gmail.com
行くための方法であること)(urllib.unquoteでしょうか?
解決
私はurllibはの unquote
のが一般的な方法であることをかなり確信していますこれをやってます。
>>> import urllib
>>> urllib.unquote("myemail%40gmail.com")
'myemail@gmail.com'
もあります unquote_plus
するます:
にunquote()と同様ですが、またunquoting HTMLフォーム値のために必要に応じて、スペースで置き換えプラス記号ます。
他のヒント
はい、そのタスクを達成 urllib.unquote()
のことが表示されます。 (I はcodepad の上のあなたの例に対してそれをテストした。)
のPython 3では、これらの機能である urllib.parse.unquote
>と urllib.parse.unquote_plus
に。
後者は空白文字()は、伝統的にプラス記号(
+
)として符号化されたHTTPのURLでクエリ文字列の例で使用され、そして+
はパーセントエンコード%2B
する。ある
def unquote_plus_to_bytes(s):
if isinstance(s, bytes):
s = s.replace(b'+', b' ')
else:
s = s.replace('+', ' ')
return unquote_to_bytes(s)
<時間>
unquote
又はunquote_plus
を使用するかの詳細については、コード URLで入手可能です空白文字:。+または%20 の
所属していません StackOverflow