mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55:18 +00:00
- Issue #3300: make urllib.parse.[un]quote() default to UTF-8.
Code contributed by Matt Giuca. quote() now encodes the input before quoting, unquote() decodes after unquoting. There are new arguments to change the encoding and errors settings. There are also new APIs to skip the encode/decode steps. [un]quote_plus() are also affected.
This commit is contained in:
parent
4171da5c9d
commit
52dbbb9068
8 changed files with 437 additions and 78 deletions
|
@ -219,7 +219,7 @@ def encode_rfc2231(s, charset=None, language=None):
|
|||
charset is given but not language, the string is encoded using the empty
|
||||
string for language.
|
||||
"""
|
||||
s = urllib.parse.quote(s, safe='')
|
||||
s = urllib.parse.quote(s, safe='', encoding=charset or 'ascii')
|
||||
if charset is None and language is None:
|
||||
return s
|
||||
if language is None:
|
||||
|
@ -271,7 +271,10 @@ def decode_params(params):
|
|||
# language specifiers at the beginning of the string.
|
||||
for num, s, encoded in continuations:
|
||||
if encoded:
|
||||
s = urllib.parse.unquote(s)
|
||||
# Decode as "latin-1", so the characters in s directly
|
||||
# represent the percent-encoded octet values.
|
||||
# collapse_rfc2231_value treats this as an octet sequence.
|
||||
s = urllib.parse.unquote(s, encoding="latin-1")
|
||||
extended = True
|
||||
value.append(s)
|
||||
value = quote(EMPTYSTRING.join(value))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue