会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
巴蛮子的烂笔头
好记性不如烂笔头啊。
跟我联系: ba.manzi AT yahoo.com
更多关于巴蛮子的信息
博客园
首页
联系
管理
订阅
Python脚本重定向其输出时的编码问题
python有一个比较烦的问题是,同一段程序,里面有print语句,直接运行时没有问题,一旦将其输出设了个重定向,这个脚本就不正常了,报告UnicodeEncodeError
究其原因,是Python感知到输出到控制台时,会从控制台取当前编码;而重定向后Python程序无法得知写那个文件该用哪个编码(不过为啥不用控制台的 值?), 缺省就用了ascii (准确地说,是系统缺省编码
sys.getdefaultencoding()
,可以在sitecustomize模块里修改。而python3将缺省编 码改为utf-8了) 。
python - UnicodeDecodeError when redirecting to file - Stack Overflow
解决办法有两个:
一个是刚才提到的修改sitecustomize模块(缺省不存在,特意留给用户定制的),在里面调用
sys.setdefaultcoding('xxxx')
——这个函数python在import site之后就没有了,应用程序的python代码里是没法调的
方法二是shell里设置环境变量
PYTHONIOENCODING
,设成utf_8或者gbk都可以(只要字符集够)
PrintFails - PythonInfo Wiki
posted @
2012-08-16 16:33
巴蛮子
阅读(
3250
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
公告
究其原因,是Python感知到输出到控制台时,会从控制台取当前编码;而重定向后Python程序无法得知写那个文件该用哪个编码(不过为啥不用控制台的 值?), 缺省就用了ascii (准确地说,是系统缺省编码sys.getdefaultencoding(),可以在sitecustomize模块里修改。而python3将缺省编 码改为utf-8了) 。python - UnicodeDecodeError when redirecting to file - Stack Overflow
解决办法有两个: