|
|||||||
Время создания: 28.12.2012 00:02
Текстовые метки: кодировка, python, UnicodeDecodeError, UTF-8, unicode, юникод
Раздел: Компьютер - Программирование - Язык Python
Запись: xintrea/mytetra_syncro/master/base/13566385393yhpu07faa/text.html на raw.github.com
|
|||||||
|
|||||||
Быстрое, но не всегда работающее решение Вначале скрипта надо прописать: # -*- coding: utf-8 -*- Соответственно, сам текст скрипта должен быть в кодировке UTF-8. UTF-8 и Python 2.7.x Но не все так просто. В Python 2.7.x, даже если прописать эту строку в начало файла с исходником, даже если все файлы с исходниками будут в кодировке UTF-8, то не исключена ситуация, что всеравно появится ошибка: UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128) В куче статей, которыми наполнен интернет, почему-то предлагаются частные решения этой глобальной проблемы. Предлагают использовать запись строк с буквой u в начале: u"Это строка". Другой предлагаемый метод - если у вас встречаются строки на русском языке или с кириллическими символами, перекодируйте их в юникод с помощью встроенного в строку метода decode(): a="Строка в UTF-8" b=a.decode("utf-8") Но такой метод решения проблем - это все равно что вилкой копать скалу. Исковыряете весь код лишними строками, а проблема как была так и останется. Однако решение все-таки есть В начале модуля, в котором возникает ошибка, надо прописать: # Устранение проблем с кодировкой UTF-8 import sys reload(sys) sys.setdefaultencoding('utf8') И ошибка кодировки исчезнет. |
|||||||
Так же в этом разделе:
|
|||||||
![]() |
|||||||
|
|||||||
|