Python で URL パラメータを適切にパーセントエンコードする方法: 特殊文字と Unicode の問題に対処する?

Linda Hamilton
リリース: 2024-10-27 10:58:01
オリジナル
376 人が閲覧しました

How to Properly Percent-Encode URL Parameters in Python: Addressing Special Characters and Unicode Issues?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!