Python での URL パラメーターのエンコード
URL には、エラーを防止し互換性を維持するためにエンコードする必要があるパラメーターが含まれることがよくあります。 Python では、この目的で urllib.quote() 関数が一般的に使用されます。ただし、次のような制限があります。
urllib.parse.quote() によるエンコーディングの改善
Python 3 のドキュメントでは、urllib.parse.quote():
<code class="python">urllib.parse.quote(string, safe='/', encoding=None, errors=None)</code>
この関数を使用すると、追加の文字を引用符で囲まずに指定できるようになり、エンコーディングが向上します。デフォルトでは、安全なパラメータには「/」が含まれます。安全のために空の文字列を渡すと、最初の問題が解決されます。
<code class="python">>>> import urllib.parse >>> urllib.parse.quote('/test', safe='') '%2Ftest'</code>
Unicode の処理
Unicode サポートに関する 2 番目の問題は、Python 3 で修正されました。Python 2 の場合この問題を回避するには、Unicode 文字列を UTF-8 としてエンコードできます。
<code class="python">>>> query = urllib.quote(u"Müller".encode('utf8')) >>> print urllib.unquote(query).decode('utf8') Müller</code>
代替アプローチ: urlencode()
便宜上、urlencode( ) 各パラメータを手動でパーセントエンコードする代わりに。 Unicode とカスタム区切り文字をサポートして、キーと値のペアを自動的にエンコードします:
<code class="python">>>> import urllib.parse >>> params = urllib.parse.urlencode({'name': 'John Doe'}) 'name=John+Doe'</code>
以上がPython で URL パラメータを適切にエンコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。