File tree Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change 31
31
import httplib2
32
32
33
33
from ._compat import PY3
34
+ from ._compat import b
34
35
from ._compat import parse_qs
35
36
from ._compat import quote
36
37
from ._compat import STRING_TYPES
@@ -614,10 +615,11 @@ def _split_header(header):
614
615
@staticmethod
615
616
def _split_url_string (param_str ):
616
617
"""Turn URL string into parameters."""
617
- #XXX parse_qs is leaving the encoded bytes after un-escaping
618
- #parameters = parse_qs(param_str.encode('utf-8'),
619
- parameters = parse_qs (param_str ,
620
- keep_blank_values = True )
618
+ if not PY3 :
619
+ # If passed unicode with quoted UTF8, Python2's parse_qs leaves
620
+ # mojibake'd uniocde after unquoting, so encode first.
621
+ param_str = b (param_str , 'utf-8' )
622
+ parameters = parse_qs (param_str , keep_blank_values = True )
621
623
for k , v in parameters .items ():
622
624
parameters [k ] = unquote_to_bytes (v [0 ])
623
625
return parameters
You can’t perform that action at this time.
0 commit comments