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

问题描述

在看书籍《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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值