ホームページ >バックエンド開発 >Python チュートリアル >Python urlencode エンコードと URL スプライシング
urlencode 呼び出しメソッド
urlencode パラメーターは Dictionary
import urllib d = {'name1':'www.pythontab.com','name2':'bbs.pythontab.com'} print urllib.urlencode(d)
である必要があります。出力:
name2=bbs.pythontab.com&name1=www.pythontab.com
この使用法は、言及されていない PHP の http_build_query() に似ています。ほとんどの PHP での使用方法はこちらです。興味があれば、ご自身で調べてください。
urlencode エンコーディング
関数 urlencode は、受信パラメータの元のエンコーディングを変更しません。つまり、呼び出し前に post または get パラメータのエンコーディングを調整する必要があります。
質問: ここで Google と baidu へのリクエストをシミュレートします。baidu は gb2312 エンコーディングを使用し、google は utf8 エンコーディングを使用するため、2 つのサイトによって URL に送信される中国語パラメータの urlencode 値は異なります。以下は「PythonTab Chinese Network」です。 " 例:
# coding: UTF-8 str = u'PythonTab中文网' str = str.encode('gb2312') d = {'name':str} q = urllib.urlencode(d) print q
結果:
name=PythonTab%D6%D0%CE%C4%CD%F8
注: urlencode のパラメータは Dictionary
である必要がありますその他の使用法
Django urlencode も同様で、メソッドは次のとおりです:
from django.utils.http import urlquote a = urlquote('PythonTab中文网') print a
中国語の文字 GBK エンコーディングを取得
urllib 変換文字列
実際、urllib の quote 関数を使用して URL 内の中国語を変換し、中国語を GBK エンコーディングに変換することができます。結果のエンコーディングは、 URI標準。
りー