Python编码问题

py文件默认ascii编码,当字符集为uft-8是,在文件头部加入以下代码防止乱码:

# -*- coding: utf-8 -*-

每次抓取网页数据后,都会出现

'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

的错误,查出是python编码的问题。

两种解决思路:

1.代码中添加

import sys

reload(sys)

sys.setdefaultencoding('utf8')

2.全局文件修改

在Python安装目录下的Lib/site-packages目录中,新建一个sitecustomize.py文件(也可以建在其它地方,然后手工导入,建在这里,每次启动Python的时候设置将自动生效),内容如下:

importsys

sys.setdefaultencoding('utf-8')#set default encoding to utf-8

然后可以查看到改变已经生效

>>>importsys

>>> sys.getdefaultencoding()

'utf-8'

此时运行程序,如果仍然报告之前的错误,只需要显示地设定输出的编码

prints.encode('utf-8')

就可以看到正确显示。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 12,811评论 0 13
  • 什么是编码 任何一种语言、文字、符号等等,计算都是将其以一种类似字典的形式存起来的,比如最早的计算机系统将英文文字...
    随风化作雨阅读 5,477评论 1 2
  • 几个基本概念 bit二进制位, 是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只...
    西电大侠阅读 8,922评论 1 8
  • 继上一篇文章字符集和编码详解总结了常见字符编码后,这篇文章会对python中常见的编码问题进行分析和总结。由于py...
    __七把刀__阅读 7,900评论 0 6
  • 今天早上我爸爸给我们煮了好吃的方便面我们吃着吃着我爸爸说他要走了就让我把方便面给我妹妹吃完,我很快的把方便面吃完就...
    惠浩博阅读 606评论 0 0