- env["SERVER_PROTOCOL"] = req.ver
- env["REQUEST_METHOD"] = req.method
- env["REQUEST_URI"] = req.url
- name = req.url
+ env["SERVER_PROTOCOL"] = req.ver.decode("latin-1")
+ env["REQUEST_METHOD"] = req.method.decode("latin-1")
+ try:
+ rawpi = unquoteurl(req.rest)
+ except:
+ rawpi = req.rest
+ try:
+ name, rest, pi = (v.decode("utf-8") for v in (req.url, req.rest, rawpi))
+ env["wsgi.uri_encoding"] = "utf-8"
+ except UnicodeError as exc:
+ name, rest, pi = (v.decode("latin-1") for v in (req.url, req.rest, rawpi))
+ env["wsgi.uri_encoding"] = "latin-1"
+ env["REQUEST_URI"] = name