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
은 두 개의 URL 매개변수를 연결하는 것과 동일합니다. 이 사용법은 PHP의 http_build_query()와 유사합니다. 관심이 있는 경우 여기에서 사용하는 방법을 확인하세요. 너 자신.
urlencode 인코딩
urlencode 함수는 수신 매개변수의 원래 인코딩을 변경하지 않습니다. 즉, 호출하기 전에 post 또는 get 매개변수의 인코딩을 조정해야 함을 의미합니다.
문제: 이제 Google과 Baidu에 대한 요청을 시뮬레이션합니다. Baidu는 gb2312 인코딩을 사용하고 Google은 utf8 인코딩을 사용하므로 두 사이트에서 URL에 제출한 중국어 매개변수의 urlencode 값이 다릅니다. " PythonTab 중국어 웹사이트" 예:
# 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의 인용 기능을 사용하여 URL에 있는 중국어를 변환하고 중국어를 GBK 인코딩으로 변환하면 결과 인코딩이 URI 표준을 준수하는 URL이 됩니다.
>>> import urllib >>> a = "PythonTab中文网" >>> a 'PythonTab\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91' >>> urllib.quote(a) 'PythonTab%E4%B8%AD%E6%96%87%E7%BD%91' >>>