- From: James M Snell <notifications@github.com>
- Date: Fri, 24 Apr 2020 11:02:44 -0700
- To: whatwg/url <url@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/url/issues/478@github.com>
See: https://github.com/nodejs/node/issues/33037 Relates to: https://github.com/whatwg/url/issues/18 Because of the differences in `URLSearchParams` and `.search` stringification, encoding of the tilde (`~`) character becomes inconsistent when using `URLSearchParam` to mutate a `URL` instance... take the following examples for instance: ```js const url = new URL('http://httpbin.org/anything?a=~'); url.search = url.searchParams.toString(); // becomes http://httpbin.org/anything?a=%7E ``` And... (demonstrated in Node.js, but appears consistent across implementations) ```js C:\Users\jasne\Projects\tmp>node Welcome to Node.js v14.0.0. Type ".help" for more information. > const u = new URL('http://example.com/?a=~') undefined > u.toString() 'http://example.com/?a=~' > u.searchParams.sort() undefined > u.toString() 'http://example.com/?a=%7E' > ``` Per https://github.com/whatwg/url/issues/18, there are reasons why `URLSearchParam` uses different semantics for stringification, and I don't necessarily want to revisit those, but we *should* likely give consideration to what the expected behavior should be when `URLSearchParam` is used to mutate a `URL` instance. Which of the differing encoding semantics should take precedence? /cc @szmarczak @bnoordhuis @Himself65 @hamper -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/url/issues/478
Received on Friday, 24 April 2020 18:02:57 UTC