New submission from And Clover <a...@doxdesk.com>: Currently wsgiref's CGIHandler makes a WSGI environ from the CGI environ without changes.
Unfortunately the CGI environ is wrong in a number of common circumstances: - on Windows, the native environ is Unicode, and different servers choose different decodings for HTTP bytes to store in the environ (most notably for PATH_INFO); - on Windows with Python 2.x, os.environ is read from the Unicode native environ using the ANSI encoding, which will lose/mangle non-ASCII characters; - on Posix with Python 3.x, os.environ is read from a native bytes environ using the filesystemencoding which is probably not ISO-8859-1. - on IIS, PATH_INFO inappropriately includes SCRIPT_NAME unless a hidden, rarely-used, and problematic config option is applied. Previously, it was not clear in PEP 333 what was supposed to happen with headers and encodings, especially under Python 3. PEP 3333 clears this up. These patches add fixups to wsgiref to try to generate the nearest to a 'correct' environ as per PEP 3333 as possible for the current platform and server software. They also fix simple_server to use the correct encoding for PATH_INFO, and include the fix for issue 9022, correspondingly updating the simple_server demo app and tests to conform to PEP 3333's expectation that headers will be ISO-8859-1-decoded Unicode strings. The test_bytes_validation test is removed: as I understand it, it's no long allowed to use byte string headers/status. ---------- components: Library (Lib) files: wsgiref-patches-3.2a3.patch keywords: patch messages: 119220 nosy: aclover priority: normal severity: normal status: open title: Add fixups for encoding problems to wsgiref type: behavior versions: Python 2.7, Python 3.2 Added file: http://bugs.python.org/file19303/wsgiref-patches-3.2a3.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue10155> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com