Настройте Notepad++ и NppExec для печати символов юникода из python.

У меня есть файл в кодировке utf-8 cjk.py:

print("打印")

Неудивительно, что запуск python cjk.py дает

Traceback (most recent call last):
  File "cjk.py", line 1, in <module>
    print('\u6253\u5370')
  File "C:\Python33\lib\encodings\cp850.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-1: character maps to <undefined>

Тем не менее, запуск idle -r cjk.py работает отлично:

打印

Можно ли настроить подключаемый модуль Notepad++ NppExec так, чтобы он вел себя как Idle? Я пытался установить кодировку ввода и вывода в UTF-8, но безрезультатно (то же исключение, что и при запуске python cjk.py из консоли)


person Clément    schedule 23.08.2013    source источник
comment
Привет, сам сталкиваюсь с такой же проблемой. Вы нашли решение своей проблемы?   -  person 5xum    schedule 02.07.2014
comment
@Clément Я не вижу той же проблемы, скорее он печатает содержимое 打印. Я использовал эту строку #coding=utf-8 в верхней части программы. Какую версию питона вы используете?   -  person RAM    schedule 09.08.2014
comment
Вы не указываете, какую версию Python и какую локализацию и какую версию какой ОС вы используете. Я предполагаю, что это Python 3.3 и какая-то версия Windows, возможно, Windows 7, локализованная для французского языка, используемого во Франции. Я кто-то прав?   -  person Jim DeLaHunt    schedule 07.09.2014
comment
Верно; Французский или Франция, Windows 8 и Python 3.3   -  person Clément    schedule 07.09.2014


Ответы (1)


У меня была такая же проблема, и я исправил ее.

Добавьте env_set PYTHONIOENCODING=utf-8 чуть ниже C:\Python27\python.exe "$(FULL_CURRENT_PATH)" в диалоговом окне при нажатии F6.

Работал как шарм для меня, надеюсь, это поможет.

Источник: http://sourceforge.net/p/npp-plugins/discussion/672146/thread/d94ff609/

person HedonNNN    schedule 22.02.2015
comment
Обратите внимание, что вам также необходимо обновить параметр NppExec Console Output..., чтобы он был UTF-8, иначе символы будут печататься неправильно. - person yoyo; 29.08.2015