New submission from And Clover <a...@doxdesk.com>: The `enum_types` function in `MimeTypes.read_windows_registry` tries to `.encode` the results of `EnumKey`, assuming it to be a Unicode string.
However, `_winreg.EnumKey` in Python 2.x actually returns a byte string (straight from the ANSI version of the registry interface). Consequently, if there is a MIME type registered with a non-ASCII character in its name (invalid, but not unheard of), initialising `MimeTypes` will raise a `UnicodeDecodeError`. This is not caught (it is only expecting a `UnicodeEncodeError`), so it bombs out whatever module indirectly caused `mimetypes.init()` to be called. This attempt to `.encode` the `ctype` should simply be removed. ---------- components: Library (Lib) files: mimetypes-patch2-2.7.patch keywords: patch messages: 121929 nosy: aclover priority: normal severity: normal status: open title: mimetypes read_windows_registry fails for non-ASCII keys versions: Python 2.7 Added file: http://bugs.python.org/file19745/mimetypes-patch2-2.7.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue10490> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com