python - Python3日历模块Unicode错误

标签 python python-3.x unicode encoding console

我正在尝试从 python calendar 打印一个简单的日历模块:

import calendar

c = calendar.LocaleTextCalendar(0, 'Russian')
s = c.formatmonth(2016, 5)
print(s)

在 Linux 上运行良好,但在 Windows 上出现错误: UnicodeEncodeError: 'charmap' codec can't encode characters in position 4-10: character maps to <undefined>

为了避免该错误,我所能做的就是 print(s.encode('ascii', 'replace').decode('ascii')) (缺少区域设置文本值),所以我对常见的不错的解决方案感兴趣。

提前致谢。

最佳答案

发生这种情况是因为 Windows 控制台编码不是 Unicode。不幸的是,这并不是一件小事,有几种方法可以解决这个问题。

您的控制台的编码是什么?你可以用Python这样的方式找到

import sys
sys.stdin.encoding

您可以尝试仅针对当前控制台以这种方式设置 Unicode:

chcp 65001
python myScript.py

在您的脚本中,确保您的字符串被编码为 UTF-8。

关于python - Python3日历模块Unicode错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34431840/

相关文章:

Python win32 Excel 将图表粘贴为位图 (PasteSpecial)?

python - 如何获得完美的音频时序

python - 为幻方写一个类型契约(Contract)

python - 如何摆脱代码中的 U+200B(Unicode 零宽度空间)?

zend-framework - 问号应该是 X

跨应用程序的 iOS 自定义 Unicode 字体

python - 为什么输入数组在递归函数内部发生变化?

Python - 如何使用 BeautifulSoup 将一个类定位到另一个类中?

python - 使用 PySide 并从 QtGui.QColorDialog 获取 "live update"

python - 查找列表中哪个数字总和等于某个数字的算法