前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python报错问题解决:'ascii' codec can't encode character

python报错问题解决:'ascii' codec can't encode character

作者头像
洗尽了浮华
发布2018-01-22 16:39:26
2K0
发布2018-01-22 16:39:26
举报
文章被收录于专栏:散尽浮华

之前部署了openstack虚拟化环境,有一天在使用nova list查看虚拟机的时候,突然报错!如下:

[root@linux-node1 src]# nova list ERROR (UnicodeEncodeError): 'ascii' codec can't encode character u'\uff08' in position 9: ordinal not in range(128)

python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错,python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。

查阅网上,可以在程序中修改所有涉及到编码的地方,强制编码为utf8,即添加代码encode("utf8"),这种方法并不推荐使用,因为一旦少写一个地方,将会导致大量的错误报告。

------------------------------------------------- 这里介绍一个一次性修改后永久生效的方法: 在python的lib\site-packages文件夹下新建一个sitecustomize.py [root@linux-node1 nova]# find / -name site-packages /usr/lib/python2.7/site-packages /usr/lib64/python2.7/site-packages

[root@linux-node1 nova]# cd /usr/lib/python2.7/site-packages/ [root@linux-node1 site-packages]# cat sitecustomize.py #添加如下内容,设置编码为utf8 # encoding=utf8 import sys

reload(sys) sys.setdefaultencoding('utf8')

此时重启python解释器,执行sys.getdefaultencoding(),发现编码已经被设置为utf8的了,多次重启之后,效果相同,这是因为系统在python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。

[root@linux-node1 nova]# python                                       #终端进入python,即是重启python解释器!可以多次进入 Python 2.7.5 (default, Aug 18 2016, 15:58:25) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>

接着,再次使用nova list命令,就没有那个报错了! [root@linux-node1 src]# nova list +--------------------------------------+----------------------------+--------+------------+-------------+--------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+----------------------------+--------+------------+-------------+--------------------+ | b6a4738d-7e01-4068-a09b-7008b612d126 | beta-new1(beta环境1) | ACTIVE | - | Running | flat=192.168.1.151 | | 9acdb28b-02c2-41bb-87c4-5f3a8fa008ab | dev-new-test1(测试环境1) | ACTIVE | - | Running | flat=192.168.1.150 | | 30e5ba3e-3942-4119-9ba6-7523cf865b6f | kvm-server003 | ACTIVE | - | Running | flat=192.168.1.152 | | a2893208-3ec9-4606-ab82-d7a870206cb9 | kvm-server004 | ACTIVE | - | Running | flat=192.168.1.153 | | 3483d9f1-4015-48d9-9837-b67ca82dd54d | kvm-server005 | ACTIVE | - | Running | flat=192.168.1.154 | +--------------------------------------+----------------------------+--------+------------+-------------+--------------------+

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-09-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档