Python で URL パラメータを効果的にパーセントエンコードする方法
Python の urllib モジュールを使用して URL パラメータをパーセントエンコードしようとすると、次のような問題が発生する可能性があります。特殊文字の処理と Unicode サポートに関する問題。これらの課題に対処するには、より優れた柔軟性と機能性を提供する urllib.parse.quote の使用を検討してください。
特殊文字の処理
urllib モジュールの quote 関数はエンコードされません。スラッシュ (「/」) を「/」にすると、OAuth の正規化が中断される可能性があります。これを修正するには、安全なパラメータに空の文字列を指定します。
<code class="python">import urllib.parse encoded_parameter = urllib.parse.quote("/test", safe="") # Output: %2Ftest</code>
Unicode 文字のサポート
Unicode 文字を処理するには、パーセントの前に UTF-8 としてエンコードしてください。 -encoding:
<code class="python">unicode_parameter = u"Müller".encode("utf8") encoded_parameter = urllib.parse.quote(unicode_parameter) # Output: %C3%9Cller</code>
UTF-8 を使用してエンコードされたパラメーターをデコードします:
<code class="python">decoded_parameter = urllib.parse.unquote(encoded_parameter).decode("utf8") # Output: Müller</code>
検討すべき代替案
urllib.parse の使用を検討します.urlencode を使用して、複数のパラメータをクエリ文字列としてエンコードします。この関数は、パラメータを自動的にパーセント エンコードし、特殊文字と Unicode サポートを処理します。
Python 2 の互換性
Python 2 の場合、urllib モジュールは Unicode を適切に処理しません。文字。回避策として、引用符を使用する前に UTF-8 としてエンコードできます:
<code class="python">query = urllib.quote(u"Müller".encode("utf8")) # Output: %C3%9Cller</code>
以上がPython で URL パラメータを適切にパーセントエンコードする方法: 特殊文字と Unicode の問題に対処する?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。