转帖:boa UnicodeDecodeError: 'ascii' codec 的解决

准备安装一个python来试试,系统环境windowsXP sp2简体中文版,安装BOA后,遇到“UnicodeDecodeError: 'ascii' codecxxx”的错误,网上搜之,发现说法有2种,

     传说能够起作用的:

网络传说1.于python安装目录下Lib/site-packages,编写sitecustomize.py,内容为

import sys
sys.setdefaultencoding('utf-8')

重启BOA,问题依旧.

网络传说2.使用CVS下载BOA,执行boa.pyw即可

说法1不顶用,说法2觉得不爽,研究了一下,发现开python命令行,sys.getdefaultencoding()发现sys.setdefaultencoding('utf-8')已经有效,BOA中的shell命令行中,依旧返回ascii,说明sitecustomize.py配置对BOA没有生效

仔细查看了BOA的启动过程,发现是加载explorers模块,出现问题,于是在BOA安装目录下Plug-ins,编辑PyInterpreterChooser.plug-in.py,加入sys.setdefaultencoding('utf-8'),重启BOA,虽然还是报错,但是已有眉目了,因为发现报错的内容换成 UnicodeDecodeError:‘utf8’ xxx,证明配置生效,另外还注意到出错的字符为0xb1,

猜测为GBK的编码,经过查证,果然就是。于是最终解决方案出炉:

在BOA安装目录下Plug-ins,编写PyInterpreterChooser.plug-in.py,加入sys.setdefaultencoding('gbk')

当然,前提是你要设置BOA加载PyInterpreterChooser插件,当然也可以加入其它文件,只要能在explorers模块加载前设置编码即可

这个问题解决了BOA的问题,为了解决以后依赖python的其它模块出现编码问题,推荐在sitecustomize.py中也设置一下编码。

比较郁闷的是,微软号称win2k以上均采用unicode内核,为什么这里是GBK呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值