Изменить кодировку потока IPython - PullRequest
1 голос
/ 22 марта 2019

Я использую установку Anaconda Python 3.6.3 и IPython 6.1.0 в Red Hat Enterprise Linux 7.5. У меня есть текстовые файлы, содержащие символы Юникода, с которыми я пытаюсь работать, но я получаю следующую ошибку при попытке напечатать содержимое этих файлов:

UnicodeEncodeError: 'ascii' codec can't encode character '\U0001f644' in position 1: ordinal not in range(128)

Я полагаю, это связано с тем, что IPython по умолчанию использует кодировку ASCII:

In [1]: from IPython.utils.encoding import get_stream_enc; import sys

In [2]: get_stream_enc(sys.stdout)
Out[2]: 'ANSI_X3.4-1968'

Я не могу найти ничего в документации IPython, объясняющей, как изменить это на UTF-8. Возможно ли это?

1 Ответ

1 голос
/ 22 марта 2019

iPython использует выходную кодировку из окружения. Чтобы использовать кодировку с поддержкой юникода, измените настройки locale вашего пользователя или задайте переменную среды PYTHONIOENCODING при вызове iPython:

PYTHONIOENCODING=UTF-8 ipython 
...