Если вы запускаете интерпретатор python из оболочки в Linux или подобных системах (BSD, не уверен в Mac), вам также следует проверить кодировку по умолчанию для оболочки.
Позвоните locale charmap
из оболочки (не интерпретатор Python), и вы должны увидеть
[user@host dir] $ locale charmap
UTF-8
[user@host dir] $
Если это не так, и вы видите что-то еще, например
[user@host dir] $ locale charmap
ANSI_X3.4-1968
[user@host dir] $
Python будет (по крайней мере, в некоторых случаях, например, в моем) наследовать кодировку оболочки и не сможет печатать (некоторые? Все?) Символы Юникода.Собственная кодировка Python по умолчанию, которую вы видите и контролируете с помощью sys.getdefaultencoding()
и sys.setdefaultencoding()
, в этом случае игнорируется.
Если вы обнаружите, что у вас есть эта проблема, вы можете исправить ее с помощью
[user@host dir] $ export LC_CTYPE="en_EN.UTF-8"
[user@host dir] $ locale charmap
UTF-8
[user@host dir] $
(Или, альтернативно, выберите любую раскладку клавиш вместо en_EN.) Вы также можете отредактировать /etc/locale.conf
(или любой файл, определяющий определение локали в вашей системе), чтобы исправить это.