Проблема с кодировкой python: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
24 мая 2014 г. 4:13
Если у вас Traceback показывает следующую информацию:
Traceback (most recent call last): File "C:\Python27\lib\site-packages\django\core\servers\basehttp.py", line 280, in run self.result = application(self.environ, self.start_response) File "C:\Python27\lib\site-packages\django\core\servers\basehttp.py", line 709, in __call__ mime_type = mimetypes.guess_type(file_path)[0] File "C:\Python27\lib\mimetypes.py", line 295, in guess_type init() File "C:\Python27\lib\mimetypes.py", line 356, in init db.read_windows_registry() File "C:\Python27\lib\mimetypes.py", line 261, in read_windows_registry for ctype in enum_types(mimedb): File "C:\Python27\lib\mimetypes.py", line 251, 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)
То решением может служить подмена функции read_windows_registry(self, strict=True)
в файле C:\Python27\Lib\mimetypes.py
def read_windows_registry(self, strict=True): """ Load the MIME types database from Windows registry. If strict is true, information will be added to list of standard types, else to the list of non-standard types. """ # Windows only if not _winreg: return def enum_types(mimedb): i = 0 while True: try: ctype = _winreg.EnumKey(mimedb, i) except EnvironmentError: break try: ctype = ctype.encode(default_encoding) # omit in 3.x! except UnicodeError: pass else: yield ctype i += 1 default_encoding = sys.getdefaultencoding() with _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, r'MIME\Database\Content Type') as mimedb: for ctype in enum_types(mimedb): try: with _winreg.OpenKey(mimedb, ctype) as key: suffix, datatype = _winreg.QueryValueEx(key, 'Extension') except EnvironmentError: continue if datatype != _winreg.REG_SZ: continue try: suffix = suffix.encode(default_encoding) # omit in 3.x! except UnicodeError: continue self.add_type(ctype, suffix, strict)
Решение взято отсюда: http://softwaremaniacs.org/forum/django/31707/
Похожие статьи:
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0