为什么在 Python 2.4 中使用 Unicode 数据会出现 ASCII 编码错误,而在 2.7 中却不会?
我有一个程序,当在 Python 2.7 中运行时,它会生成正确的 Unicode 输出到标准输出。在 Python 2.4 中运行时,我收到 UnicodeEncodeError: 'ascii' codec can't Encodecharacters inposition 1-4: ordinal not in range(128)
。版本 2.4 和 2.7 之间发生了什么变化,现在可以使用了?
I have a program that, when run in Python 2.7, produces proper Unicode output to the standard output. When run in Python 2.4, I get UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-4: ordinal not in range(128)
. What changed between version 2.4 and 2.7 that this works now?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尽管我在其他地方找不到任何提及,但 Python 2.7 似乎会自动将文本转换为终端编码,而不是按预期抛出错误。
Python 2.7:
Python 2.6(在另一个盒子上)
无论如何,在输出之前对数据进行 .encode("utf8") 应该可以避免该问题。
Although I could not find any mention of it elswhere, it appears that Python 2.7 is automatically converting text to the terminal encoding, instead of throwing an error as expected.
Python 2.7:
Python 2.6 (on another box)
In any case, an .encode("utf8") on the data before output should avoid the issue.