Assume a query string like a=b"c&d=e
The expected mapping for that query string, would reasonably be expected to be
Actual result using httpcore 4.4.9 is
Using URLEncodedUtils from httpclient uses the TokenParser in httpcore.
After successfully parsing the name (a), the value is parsed using the parseValue(CharArrayBuffer, ParserCursor, BitSet)[link] method.
The first character being neither a delimiter nor a double quote, ends up calling copyUnquotedContent(CharArrayBuffer, ParserCursor, BitSet, StringBuilder)[link] which ends up returning when the double quote is reached ([link]) instead of when the delimiter is reached.
parseValue then continues parsing the value but as quoted content this time (because the now current position is a quote character). Copying quoted content reasonably does not break on the delimiter set, but this ends up consuming the rest of the query string.
Other URI parsers parse the URI in the expected format, such as with Python.
Although I haven't explicitly tested with httpcore5, the code for TokenParser appears equivalent to 4.4.9.