码迷,mamicode.com
首页 > 编程语言 > 详细

python运行代码出现'ascii' codec can't decode byte 0xb4 in position 11: ordinal not in range(128)

时间:2017-11-09 20:54:15      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:字符串转换   代码   问题   原理   code   编码格式   site   efault   出现   

学习机器学习时出现的问题,百度了半天也没弄好,但知道了大概的原因

原因如下:因为默认情况下,Python采用的是ascii编码方式,而Python在进行编码方式之间的转换时,会将 unicode 作为“中间编码”,但 unicode 最大只有 128 那么长,所以这里当尝试将 ascii 编码字符串转换成"中间编码" unicode 时由于超出了其范围,就报出了如上错误。

既然知道了原因,那就好解决了不是

解决方法如下:

1.修改默认编码格式: 例如# encoding =utf-8

2.在/usr/lib/python2.7/site-packages/目录下添加一个sitecustomize.py文件,内容如下:

import sys
sys.setdefaultencoding(utf-8‘)

3.上面那个办法我没试过,但感觉应该可以,它原理上是修改了所有文件的编码格式。

然而我错的原因在于路径有中文。。。改成英文就好了,如果有同样情况的不妨一试

python运行代码出现'ascii' codec can't decode byte 0xb4 in position 11: ordinal not in range(128)

标签:字符串转换   代码   问题   原理   code   编码格式   site   efault   出现   

原文地址:http://www.cnblogs.com/xinzhiyan/p/7810987.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!