python有关改变标准输出的默认编码的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python有关改变标准输出的默认编码的问题相关的知识,希望对你有一定的参考价值。
当我在python里运行下面这段代码时
import io
import sys
#改变标准输出的默认编码
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
为什么会出现AttributeError: 'file' object has no attribute 'buffer'这个问题?
网上别人这么做好像很正常啊?
试运行了下
print dir(sys.stdout)
发现并无包含buffer
而且当我删掉sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')里的.buffer时又出现AttributeError: readable这个新问题,不知道为什么
那Python2.x应该怎么做?
追答不知
参考技术A python3 改为sys.stdout= io.TextIOWrapper(sys.stdin.buffer,encoding='gb18030') 应该可以Python改变标准输出默认编码方法
在做接口request时可能会遇到以下问题:
UnicodeEncodeError: 'gbk' codec can't encode character '\\xbb' in position 0: illegal multibyte sequence
出现以上问题是由于编码的问题,使用以下方法可以改变Python标准输出的默认编码:
1、sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出默认编码为utf-8
修改了python的默认编码为utf8,并赋予了我们的stdout输出,使得python的输出默认编码为utf8
2、sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改变标准输出默认编码为gb18030(gbk)
修改了python的默认编码为gb18030(gbk),并赋予了我们的stdout输出,使得python的输出默认编码为gb18030(gbk)
以上是关于python有关改变标准输出的默认编码的问题的主要内容,如果未能解决你的问题,请参考以下文章
python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character 'xXX(