Измените кодовую страницу Windows 8 в консоли Python 3 Spyder с cp1252 на utf-8.

Как изменить кодовую страницу Windows 8 в консоли Python 3 Spyder с cp1252 на utf-8?

Кодовая страница, по-видимому, cp1252, о чем свидетельствует

import locale
locale.getpreferredencoding()

Это означает, что трудно печатать символы, отличные от ascii, с помощью «print», поскольку возникает исключение (UnicodeEncodeError).

Одним из возможных решений является использование метода .encode и его аргумента «ошибки».

u'\x9d'.encode('cp1252', errors='replace')

Но почему нет (или где есть) возможности изменить кодировку консоли на utf-8. Я ожидал вариант в «Предпочтениях».

Другим решением является выполнение файла python вне Spyder, например:

chcp 65001
c:\path_to_python\python.exe the_script.py

Это работает, но ему не хватает интегрированности Spyder.

Я попытался сделать пакетный файл с

chcp 65001
c:\path_to_python\python.exe

И установите для этого «использовать следующий интерпретатор Python» в «Дополнительных настройках», но Spyder не позволит этого — по крайней мере, так, как я пробовал.

Я также не мог сделать другой обходной путь, создав пакетный скрипт с:

chcp 65001
c\:path_to_spyder\Spyder.exe

person Finn Årup Nielsen    schedule 03.11.2014    source источник


Ответы (1)


(Spyder dev здесь). Это будет исправлено в нашем следующем выпуске (т. е. в версии 2.3.2). И ввод, и вывод в консоли будут обрабатываться как Unicode, начиная с этого выпуска, а также для Python 3 и Python 2.

person Carlos Cordoba    schedule 04.11.2014