Кто-нибудь знает, почему функции преобразования строк генерируют исключения, когда пропускается error = "ignore"? Как я могу преобразовать обычные строковые объекты Python в юникод без ошибок? Большое спасибо!
python -c "import codecs; codecs.open('tmp', 'wb', encoding='utf8', errors='ignore').write('кошка')"
возвращает
Traceback (последний вызов был последним):
Файл "", строка 1, в
Файл "/usr/lib/python2.6/codecs.py", строка 686, в записи
вернуть self.writer.write (данные)
Файл "/usr/lib/python2.6/codecs.py", строка 351, в записи
данные, потребляются = self.encode (объект, self.errors)
UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xd0 в позиции 0: порядковый номер не в диапазоне (128)
РЕДАКТИРОВАТЬ - спасибо за ответы, но кто-нибудь знает, как преобразовать приведенный выше литерал, не используя префикс "u"? Причина в том, что вы, конечно, можете иметь дело с чем-то, что не является константой:)