立即停止在 Python 中使用 setdefaultencoding('utf-8'), 以及为什么

2016-02-01 11:54:03 +08:00
 ernest

http://blog.ernest.me/post/python-setdefaultencoding-unicode-bytes

我看了下现在(包括 V2EX 上)还在使用 sys.setdefaultencoding('utf-8') 来解决中文编码问题的有很多,而且很多人在使用的时候压根没有意识到带来的 bug。特写此文与大家讨论。

12300 次点击
所在节点    Python
27 条回复
Tink
2016-02-01 16:03:42 +08:00
上 python3
ernest
2016-02-01 16:34:11 +08:00
@florije 你所说的这些我在 “问题的根源: Python2 中的 String ”一段里已经都涵盖了。
ernest
2016-02-01 16:34:56 +08:00
@florije 所以我不太明白你在第一个评论里说的“一点都没说到点上”
TankyWoo
2016-02-01 17:23:11 +08:00
@tt0411 pocoo 的实践是不建议用 unicode_literals ,虽然我倾向于用...

http://click.pocoo.org/5/python3/

https://github.com/PythonCharmers/python-future/issues/22
ming2281
2016-02-01 20:09:03 +08:00
py2 中有别的语言没有的编码问题,
属于基本功了,
不至于动用 sys
fy
2016-02-01 20:51:37 +08:00
危言耸听!
另外讲道理还是赶紧迁移到 Python3
latyas
2016-02-02 11:38:33 +08:00
defaultencoding = ascii 难道就没问题了?
= utf-8 才是本该正确的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/254744

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX