python - utf-8 编码在 iPython 控制台中工作,而不是在 Spyder 编辑器中
问题描述
这是最小的测试。在 Spyder Editor 中,我写了这 4 行(仅此而已)
# -*- coding: utf-8 -*-
import sys
print(sys.getdefaultencoding() )
print(u"µ")
我得到:
utf-8
µ
但如果我只是在 iPython 控制台中复制粘贴这两行,我会得到
我的 .py 文件或 spyder 编辑器有什么问题?
解决方案
我的 .py 文件或 spyder 编辑器有什么问题?
问题很可能是您使用的是 Windows,并且控制台将您的输出解释为 Windows-1252(西欧 Windows 的默认控制台编码):
>>> 'µ'.encode('utf-8').decode('windows-1252')
'µ'
目前尚不清楚第一个片段是 spyder 控制台还是python
Windows 控制台中的普通 shell。
print(sys.getdefaultencoding() )
从字面上看与任何事情无关。sys.getdefaultencoding()
是内部python编码。
您可以尝试弄乱PYTHONIOENCODING
,或查看locale.getpreferredencoding()
返回的内容。
推荐阅读
- javascript - 尝试使用 fetch put 编辑数据但无法引用正确的 id
- c - 将 void 指针(它是结构的一部分)转换为另一种指针数据类型
- plot - 使用动态线宽时无法绘图
- python - Top3 K 标签的精度和召回率
- php - 流明/laravel 采摘不适合关系
- python - Discord.py 公告频道的代码是什么?
- c++ - MSVC Address Sanitizer - 有什么理由在 Release 版本中使用它?
- reactjs - 通过表单引用在表单项上设置禁用
- linux - 有什么方法可以知道哪些环境变量正在尝试读取 linux 程序?
- javascript - Electron:退出渲染器但不是主进程