UnicodeEncodeError: 'gbk' codec can't encode character '\xc4' 这类问题之解决

来源:互联网 发布:天刀功力算法 编辑:程序博客网 时间:2024/05/15 23:49

问题描述

在看书籍《Mark Lutz. Learning Python. 5ed. O’Reilly 2013》的106页的一个例子时,如下:

>>> print('sp\xc4m')

在我的win7电脑的cmd console中以交互式的方式运行,不仅得不到与书中相同的结果,反而得到以下错误:

UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xc4’

在网上搜索了半天,前前后后折腾了2个多小时,始终没有解决。按网上的各种解决方法,都不奏效。

实际上,上述问题我两年前即已碰到。当时,该书刚刚出版没多久,也是看该例子的时候,与书上的运行结果不一致,且出现报错。我把出现错误的原因归为中文操作系统的缘故,因为该书是2013年出版的英文原版书,书的作者在写该书前,必定用的是英文的操作系统。

解决方案

晚上回到休息的酒店,就登录了anaconda的最新下载页面,发现Anaconda已经更新到4.4.0版本了。自己在备课的过程中已经发现math库增加了两个常量,相比Python 3.4.4来说,分别为math.inf和math.nan。何不就装一个新版本的Anaconda试试。

特别注意,我原来使用的Anaconda版本及Python版本如下:

  • Anaconda 4.0.0
  • Python 3.4.4

我新安装的版本为:

  • Anaconda 4.4.0
  • Python 3.6.1
    我再次运行书中的例子如下:
    这里写图片描述
    发现与书中的运行结果完全一致,问题得以解决。

结论

由此可知,最新版本的Python 3.6.1完美地解决了以前版本中的处理unicode字符的bug问题,在直接支持Unicode字符处理方面的能力得到了增强。

阅读全文
0 0