LINUX.ORG.RU

UnicodeEncodeError при перенаправлении вывода в питоне

 , ,


0

2

Сабж. Как с ним бороться? Если тема уже обсуждалась, ткните носом.
Собственно, есть скрипт на питоне, который выводит через print строки, содержащие юникодные символы. Нужно передавать вывод скрипту на баше через пайп.

Ответ на: комментарий от anonymous

Помогло, спасибо. А можешь ещё объяснить тупому, почему надо так?

Скрипт в студию.

Стыдно за свой говнокод. Там есть

# -*- coding: utf-8 -*-
в начале и строки вида
print u"Hello, {name}".format(**foobar)

gasinvein ★★★
() автор топика

Вопрос про юникод и не указана версия питона. Больше так не делай, ладно?

По сабжу: тройка решает эти проблемы на корню. Если двойка и по-другому никак, то encode/decode, как выше написали.

почему надо так?

man Кодировки в python-е.

Lilly
()
Ответ на: комментарий от gasinvein

# -*- coding: utf-8 -*-

эта директива указывает интерпретатору с помощью какого энкодера обрабатывать сорец. в стандартном пакете encodings находятся все доступные энкодеры. в данном случае это позволит использовать в скрипте utf-8 строковые литералы, то бишь любимую кириллицу в том числе, в отличие от дефолтной для второго питона аскии. больше ничего эта директива не дает и к ошибкам UnicodeDecode(Encode)Error отношения не имеет

Virtuos86 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.