Uri.parse does not properly unescape query strings. e.g. my+Browser%2B gives my+Browser+ and it should be my Browser+.
There is a tentative fix in https://github.com/andrew-stevenson-sociomantic/ocean/commits/url_parsing (last 2 commits). I no longer use the code however and don't currently have the time to fully verify it or check the performance.