Dec-29-2023, 04:00 AM
(Dec-28-2023, 11:10 AM)Yoriz Wrote: The end of theparse_qsl
function is using replace('+', ' ')
def parse_qsl(qs, keep_blank_values=False, strict_parsing=False, encoding='utf-8', errors='replace', max_num_fields=None, separator='&'): ... ... for name_value in query_args: ... ... if len(nv[1]) or keep_blank_values: name = nv[0].replace('+', ' ') name = unquote(name, encoding=encoding, errors=errors) name = _coerce_result(name) value = nv[1].replace('+', ' ') value = unquote(value, encoding=encoding, errors=errors) value = _coerce_result(value) r.append((name, value)) return r
Thank you for your answer. You explained why parse_qsl would replace '+' with ' '. But I'm more curious about whether such seemingly meaningless query params should be directly ignored instead of being processed? Because for something like username= without a value, parse_qsl would directly ignore it.