在下面的Python 2.7 shell中,我期待“s.decode('cp437')”,而print(s)给我相同的输出,但它们不是,这是什么原因?
>>> import sys
>>> sys.stdout.encoding
'cp437'
>>> sys.stdin.encoding
'cp437'
>>>
>>> s = "Flügel"
>>> s
'Fl\x81gel'
>>> s.decode('cp437')
u'Fl\xfcgel'
>>>
>>> print(s)
Flügel
>>>
答案 0 :(得分:1)
decode
将返回解码后的值,而不是替换s
。
如果您想更改变量,
s = s.decode('cp437')
(有趣的是,documentation只是说它解码了字符串,而encode documentation表示它返回了一个编码的字符串)