在Python 3 Spyder控制台中将Windows 8代码页从cp1252更改为utf-8

0 投票
1 回答
990 浏览
提问于 2025-05-01 08:14

如何在Python 3的Spyder控制台中将Windows 8的代码页从cp1252更改为utf-8?

看起来当前的代码页是cp1252,这可以通过以下代码确认:

import locale
locale.getpreferredencoding()

这意味着使用'print'打印非ASCII字符时会遇到困难,因为会抛出一个异常(UnicodeEncodeError)。

一个可能的解决办法是使用.encode方法和它的'errors'参数。

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

但是,为什么没有选项可以将控制台编码更改为utf-8呢?我原本期待在“偏好设置”中能找到这个选项。

另一个解决方案是通过在Spyder外部执行Python文件,比如:

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
暂无标签

1 个回答

1

(这里是Spyder开发者) 这个问题将在我们下一个版本中解决(也就是版本2.3.2)。从那个版本开始,控制台中的输入和输出都会被当作unicode来处理,这适用于Python 3和Python 2。

撰写回答