django 中解决 UnicodeDecodeError: 'ascii' codec 问题

安装django中 报错,报错如下:

File "C:\Python27\lib\site-packages\django-1.8-py2.7.egg\django\contrib\staticfiles\views.py", line 41, in serve
    db.read_windows_registry()
    return static.serve(request, path, document_root=document_root, **kwargs)
  File "C:\Python27\lib\mimetypes.py", line 258, in read_windows_registry
  File "C:\Python27\lib\site-packages\django-1.8-py2.7.egg\django\views\static.py", line 64, in serve
    for subkeyname in enum_types(hkcr):
    content_type, encoding = mimetypes.guess_type(fullpath)
  File "C:\Python27\lib\mimetypes.py", line 249, in enum_types
  File "C:\Python27\lib\mimetypes.py", line 297, in guess_type
    ctype = ctype.encode(default_encoding) # omit in 3.x!
    init()
  File "C:\Python27\lib\mimetypes.py", line 358, in init
google后找到问题了,是py27的一个bug:

python27中 Lib\mimetypes.py的一个bug,属于 "def enum_types(mimedb)"函数:

File "D:\Python27\lib\mimetypes.py", line 249, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128)
解决方法

删除

try:
    ctype = ctype.encode(default_encoding) # omit in 3.x!
except UnicodeEncodeError:
    pass



参考: http://stackoverflow.com/questions/4237898/unicodedecodeerror-ascii-codec-cant-decode-byte-0xe0-in-position-0-ordinal

你可能感兴趣的:(django 中解决 UnicodeDecodeError: 'ascii' codec 问题)