对于a = u'\u4e00'
如果我在控制台中输入a
,我会得到:u'\u4e00'
。因此,要将a
显示为unicode字符,我可以按如下方式更改sys.displayhook:
import sys
def my_display(x):
if isinstance(x, unicode):
sys.stdout.write(x.encode("utf-8"))
else:
sys.stdout.write(repr(x))
sys.stdout.write("\n")
sys.displayhook = my_display
然后,如果我在控制台中输入a
,我会得到一
。
问题:如果之后,我想将sys.displayhook更改回原始默认设置。我怎样才能做到这一点?
答案 0 :(得分:2)
sys.displayhook = sys.__displayhook__
sys.__displayhook__
存储了原始sys.displayhook
,用于此类案例。
(顺便说一句,我还建议你不要做原来的sys.displayhook
替换。你可能只想要print a
,也许有一些东西要匹配你的终端编码的编码。)