首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该在我编写的每个Python脚本中包括这个样板代码吗?

我应该在我编写的每个Python脚本中包括这个样板代码吗?
EN

Stack Overflow用户
提问于 2016-08-27 09:51:03
回答 1查看 474关注 0票数 4

我的老板让我在我编写的Python3脚本中放入以下几行(来自this answer):

代码语言:javascript
复制
import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach()) 

他说,这是为了防止UnicodeEncodeErrors在非UTF8 8语言环境中打印Unicode字符.我想知道这是否真的是必要的,为什么Python在没有样板代码的情况下不能正确地处理编码/解码。

使Python脚本与不同操作系统环境兼容的最Python方法是什么?这个样板代码到底是做什么的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-27 10:17:25

here提供的答案从有关您的问题的Python列表中摘录得很好。我想没必要这么做。

Python中唯一受支持的默认编码是: Python2.x: ASCII Python 3.x: UTF-8 如果你改变了这些,你就只能靠自己了,奇怪的事情就会开始发生。默认编码不仅影响Python和外部世界之间的转换,而且影响8位字符串和Unicode之间的所有内部转换。 类似pango模块中正在发生的事情(通过重新加载站点模块将默认编码设置为'utf-8‘以使sys.setdefaultencoding() API返回)是完全错误的,并且会导致严重的问题,因为Unicode对象缓存它们的默认编码表示。 请不要启用基于区域设置的默认编码。 如果您想要实现的只是正确设置管道的stdout和stdin编码,则应该更改这些管道的.encoding属性(仅)。 -- 马克·安德烈·伦伯格 eGenix.com

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39179738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档