- urllib模块url编码和解码:
1.urllib.quote,urllib.quote_plus ,urllib.unquote ,urllib.unquote_plus
urllib.quote 说明:
quote(s, safe='/')
quote('abc def') -> 'abc%20def'
Each part of a URL, e.g. the path info, the query, etc., has a
different set of reserved characters that must be quoted.
RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax lists
the following reserved characters.
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
Each of these characters is reserved in some component of a URL,
but not necessarily in all of them.
By default, the quote function is intended for quoting the path
section of a URL. Thus, it will not encode '/'. This character
is reserved, but in typical usage the quote function is being
called on a path where the existing slash characters are used as
reserved characters.
(END)
urllib.quote_plus 说明:
quote_plus(s, safe='')
Quote the query fragment of a URL; replacing ' ' with '+'
实例演示:
In [18]: urllib.quote('abc def')
Out[18]: 'abc%20def'
In [19]: urllib.quote_plus('abc def')
Out[19]: 'abc+def'
2.urllib.urlencode
urlencode(query, doseq=0)
Encode a sequence of two-element tuples or dictionary into a URL query string.
If any values in the query arg are sequences and doseq is true, each
sequence element is converted to a separate parameter.
If the query arg is a sequence of two-element tuples, the order of the
parameters in the output will match the order of parameters in the
input.
(END)
实例演示:
In [21]: urllib.urlencode({'username':'xixi','passward':'haha'})
Out[21]: 'username=xixi&passward=haha'
In [23]: urllib.urlencode((('username','嘻嘻'),('passward','哈哈')))
Out[23]: 'username=%E5%98%BB%E5%98%BB&passward=%E5%93%88%E5%93%88'