New submission from Vladimir Dmitriev <[email protected]>:
Windows 7, Python 2.7
Some windows applications (QuickTime) add content-types to Windows registry
with non-ascii names. mimetypes in unaware of that and fails with
UnicodeDecodeError:
>>> mimetypes.guess_type('test.js')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\Python27\lib\mimetypes.py", line 294, in guess_type
init()
File "c:\Python27\lib\mimetypes.py", line 355, in init
db.read_windows_registry()
File "c:\Python27\lib\mimetypes.py", line 260, in read_windows_registry
for ctype in enum_types(mimedb):
File "c:\Python27\lib\mimetypes.py", line 250, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal
not in range(128)
Example registry leaf is attached to previous message.
I believe the correct behavior would be either to wrap UnicodeDecodeError
exception and skip those content-typer or use .decode() method for registry
keys and get encoding using locale.getdefaultlocale()
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue10113>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com