BUG: Gracefully handle all utf-8 characters in json urls 
- [x] closes #17918  
- [ ] tests added / passed
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Url is passed through `quote` before doing the request.  The `safe` parameter characters are the reserved character set defined in [RFC 2396](https://www.ietf.org/rfc/rfc2396.txt)(See section 2.2). 