Python 2.7字符串解码。

时间:2017-02-22 21:32:41

标签: python python-2.7

在下面的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
>>>

1 个答案:

答案 0 :(得分:1)

decode返回解码后的值,而不是替换s

如果您想更改变量,

s = s.decode('cp437')

(有趣的是,documentation只是说它解码了字符串,而encode documentation表示它返回了一个编码的字符串)