File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 3131import httplib2
3232
3333from ._compat import PY3
34+ from ._compat import b
3435from ._compat import parse_qs
3536from ._compat import quote
3637from ._compat import STRING_TYPES
@@ -614,10 +615,11 @@ def _split_header(header):
614615 @staticmethod
615616 def _split_url_string (param_str ):
616617 """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 )
621623 for k , v in parameters .items ():
622624 parameters [k ] = unquote_to_bytes (v [0 ])
623625 return parameters
You can’t perform that action at this time.
0 commit comments