gpt4 book ai didi

Python 2.7 Unicode/IDLE 混淆

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:16 28 4
gpt4 key购买 nike

我已经阅读了很多有关 Unicode 和 Python 2.7 中的各种编码/解码的内容,但我仍然无法理解为什么 IDLE 似乎无法打印正确的字符串。

我有一个 unicode 字符串:

>>> s = u"Hey I\u2019m Bob"
>>> print s
Hey I'm Bob

但是,在我编码为 UTF-8 后,我得到:

>>> s.encode('utf-8')
'Hey I\xe2\x80\x99m Bob'
>>> print s.encode('utf-8')
Hey I’m Bob

我不明白为什么我不能正确打印它,但我可以将 s.encode('utf-8') 写入文本文件并且它正确输出。不确定这是否与 IDLE 有关?

最佳答案

这是因为 IDLE 的输出窗口不支持 UTF-8,但打印 Unicode 字符串会自动尝试使用 stdout 编码对该字符串进行编码。以下内容来自 IDLE 控制台:

>>> s = u"Hey I\u2019m Bob"
>>> print s
Hey I’m Bob
>>> print s.encode('utf8')
Hey I’m Bob
>>> import sys
>>> sys.stdout.encoding
'cp1252'
>>> print s.encode('cp1252')
Hey I’m Bob

关于Python 2.7 Unicode/IDLE 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15171280/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com