【问题标题】:Python - Encode error - cp850.pyPython - 编码错误 - cp850.py
【发布时间】:2015-08-04 09:25:50
【问题描述】:

我是 Python 初学者,所以我希望这个问题很容易解决。

我想打印一个属性的值如下:

print (follower.city)

我收到以下错误消息:

文件“C:\Python34\lib\encodings\cp850.py”,第 19 行,编码返回 codecs.charmap_encode(input,self.errors,encoding_map)[0] UnicodeEncodeError:‘charmap’编解码器无法编码字符‘\u0130’ 0:字符映射到(未定义)

我认为问题在于 cp850.py 不包含编码表中的相关字符。

解决这个问题的方法是什么?最终不需要正确显示字符,但必须避免错误消息。需要修改cp850.py吗?

很抱歉,如果这个问题之前已经解决过,但我无法使用该主题的先前答案来解决这个问题。

【问题讨论】:

  • 您正在尝试打印utf-8 数据,但您的控制台无法显示它。通过执行 chcp 65001 (to utf-8) 更改控制台的默认编码(不在 python 内部,直接在命令提示符中)。

标签: python encoding error-handling


【解决方案1】:

要打印字符串,必须首先将其从纯 Unicode 转换为输出设备支持的字节序列。这需要对正确的字符集进行编码,Python 已将其标识为 cp850 - Windows 控制台默认设置。

从 Python 3.3 开始,您可以将 Windows 控制台设置为使用 UTF-8,并在命令提示符处发出以下命令:

chcp 65001

这应该可以解决您的问题,只要您已将窗口配置为使用包含该字符的字体。

【讨论】:

  • 从 Python 3.4 开始是什么意思?它不适用于以前的版本吗?
  • 它不适用于 2.* 版本(仍然不确定,因为 Windows)。并说 3.4,因为 OP 正在使用该版本。
  • 好的,为了完成,我在此处删除以下链接 - docs.python.org/dev/whatsnew/3.3.html#codecs - 已添加新的仅限 Windows 的编解码器:cp65001(问题 13216)。它是 Windows 代码页 65001(Windows UTF-8,CP_UTF8)。。从 Python 3.3 开始支持它。
  • 酷。因此从 Python 3.3 开始就支持它。
  • 非常感谢你们!但是,在 cmd 终端中输入chcp 65001 只能暂时解决问题。我正在通过 JSON 请求检索数据 - 在第一次请求之后,打印命令工作正常。一旦我提出新请求,我在使用 print 命令时再次收到相同的错误。有什么想法有什么问题吗?
猜你喜欢
  • 2018-12-21
  • 2015-02-04
  • 2019-01-18
  • 2011-03-14
  • 2014-10-22
  • 2016-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多