资讯专栏INFORMATION COLUMN

记Python中一个编码的错误

Alfred / 2921人阅读

摘要:我在中使用的时候,提示一直不知道是什么原因,通过查阅一个资料,才知道,原来是编码问题。字符串在进行的时候,要使用什么编码格式进行转换呢这个时候就要根据来确定了。而是编码,在字符表中不存在这种大于的字符存在。所以当然会报错。

我在Linux中使用make html的时候,提示:

UnicodeDecodeError: "ascii" codec can"t decode byte 0xe5 in position 0: ordinal not in range(128)

一直不知道是什么原因,通过查阅一个资料,才知道,原来是编码问题。
字符串在进行unicode的时候,要使用什么编码格式进行转换呢?utf-8?gb2312?utf-16?这个时候就要根据 sys.getdefaultencoding()来确定了。而sys.getdefaultencoding()ascii编码,在ascii字符表中不存在0xe5这种大于128的字符存在。所以当然会报错。
可以这样修改:

#coding:utf-8
import sys 
reload(sys) 
sys.setdefaultencoding("utf-8")

而因为我是使用的make html,通过查找,发现是/usr/bin/sphinx-build这个文件在捣鬼。所以我修改这个文件就好了。

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys
reload(sys) #新添加的
sys.setdefaultencoding("utf-8") #新添加的
from sphinx import main

if __name__ == "__main__":
    sys.argv[0] = re.sub(r"(-script.pyw|.exe)?$", "", sys.argv[0])
    sys.exit(main())

这样就正常了。

http://my.oschina.net/leejun2005/blog/74430

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37995.html

相关文章

  • PyTips 0x09 - Python Unicode 正确用法

    摘要:只包含了个基本拉丁字母阿拉伯数目字和英式标点符号一共个字符,因此只需要不占满一个字节就可以存储,而则涵盖的数据除了视觉上的字形编码方法标准的字符编码外,还包含了字符特性,如大小写字母,共可包含个字符,而到现在只填充了其中的个位置。 项目地址:https://git.io/pytips 0x07 和 0x08 分别介绍了 Python 中的字符串类型(str)和字节类型(byte),以及...

    shenhualong 评论0 收藏0
  • 关于解决Python乱码问题终极解决方案 (TL;DR)

    摘要:关于解决乱码问题的终极解决方案有个特别好玩的现象,当我们为了编码头疼的时候,几乎搜索到所有的文章都会先发一通牢骚。另外,关于的乱码问题,又是一个新的较长篇章。 关于解决Python乱码问题的终极解决方案 (TL;DR) showImg(https://segmentfault.com/img/remote/1460000013229494?w=809&h=184); 有个特别好玩的现象...

    Lemon_95 评论0 收藏0
  • python奇遇:迭代器和生成器

    摘要:来说说迭代器和生成器,还有可迭代对象和生成器表达式。有点绕是不是,其实,一般只要知道可迭代对象以及它是如何实现的就行了,中常常用生成器来代替迭代器,可以说,生成器就是迭代器。 来说说迭代器和生成器,还有可迭代对象和生成器表达式。 之前简单的提到过,一个对象是可迭代的可以理解为能够使用for循环。这样说其实不太准确,某个对象可迭代是因为它内部实现了$__iter__$这个特殊方法。比如在...

    atinosun 评论0 收藏0
  • 【大坑Python全局变量变成了局部变量

    摘要:后来好奇自己写了个小程序测验同样报了错误于是猜出了,在定义这个函数的时候,我们在函数内存在给全局变量赋值的操作,它就默认把函数内的变成了本地变量。 上线前忙忙乎乎写代码,更新了一个同事的代码,发现日志模块报错了 伪代码如下: from flask import current_app def add_log(data, app=None): if app: ...

    DobbyKim 评论0 收藏0
  • 爬虫养成 - 网络下载器urllib2初认识

    摘要:申明本系列文章借鉴了慕课网的课程,。慕课网是一个非常赞的学习网站。是下的一个模块,在中,被拆分成和实现一个最简单的下载器使用函数可以给服务器发送一个请求。该函数返回一个该返回的对象有三个额外的函数取得服务器返回的。默认没有的,请求方式为。 申明:本系列文章借鉴了慕课网的课程,http://www.imooc.com/learn/563。慕课网是一个非常赞的学习网站。 urllib2是p...

    AlphaWallet 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<