При использовании ключевого слова "print
" вы будете записывать в выходной поток sys.stdout
. sys.stdout
обычно может отображать строки Unicode, только если символы можно преобразовать в ascii с помощью str(message)
.
При печати вам необходимо кодировать кодировку терминала вашей ОС, чтобы это можно было сделать.
Модуль locale
может иногда определять кодировку консоли вывода:
import locale
print unichr(0xff).encode(locale.getdefaultlocale()[1], 'replace')
но обычно лучше просто указать кодировку самостоятельно, так как python часто ошибается:
print unichr(0xff).encode('latin-1', 'replace')
UTF-8 или latin-1, я думаю, часто используется во многих современных дистрибутивах Linux.
Если вам известна кодировка вашей консоли, строки ниже будут автоматически кодировать строки Unicode при использовании «print
»:
import sys
import codecs
sys.stdout = codecs.getwriter(ENCODING)(sys.stdout)
Если кодировка ascii или что-то подобное, вам может потребоваться изменить кодировку консоли вашей ОС, чтобы иметь возможность отображать этот символ.
Смотри также: http://wiki.python.org/moin/PrintFails