Fixed #19508

- When having urls like `/test/~%A9`, we get `400` when project is deployed as `WSGIHandler` has fallback for `400` in case of `UnicodeDecodeError`.
- In development we get `500` because `StaticFilesHandler` is used and it does not have that fallback.
- It cannot be reproduced in tests because the `ClientHandler` again raises `UnicodeDecodeError` in `get_path_info()`.
- The problem arises when in [https://github.com/django/django/blob/master/django/core/handlers/wsgi.py#L210 get_path_info()], we decode the url in `utf-8`.
- When we pass a url, it passes through `unquote()` in `urllib` where it converts all percent encodings, even those which should remain url-encoded.