首页 > 解决方案 > utf-8 编码在 iPython 控制台中工作,而不是在 Spyder 编辑器中

问题描述

这是最小的测试。在 Spyder Editor 中,我写了这 4 行(仅此而已)

# -*- coding: utf-8 -*-
import sys
print(sys.getdefaultencoding() )
print(u"µ")

我得到:

utf-8
µ

但如果我只是在 iPython 控制台中复制粘贴这两行,我会得到

utf-8 \n µ

我的 .py 文件或 spyder 编辑器有什么问题?

标签: pythonutf-8spyder

解决方案


我的 .py 文件或 spyder 编辑器有什么问题?

问题很可能是您使用的是 Windows,并且控制台将您的输出解释为 Windows-1252(西欧 Windows 的默认控制台编码):

>>> 'µ'.encode('utf-8').decode('windows-1252')
'µ'

目前尚不清楚第一个片段是 spyder 控制台还是pythonWindows 控制台中的普通 shell。

print(sys.getdefaultencoding() )

从字面上看与任何事情无关。sys.getdefaultencoding()是内部python编码。

您可以尝试弄乱PYTHONIOENCODING,或查看locale.getpreferredencoding()返回的内容。


推荐阅读