Python字符串编码方法

时间:2011-03-03 06:37:00

标签: python unicode

在Python中,unicode字符串中有一个encode方法,用于从unicode编码为字节字符串。字符串中有一个decode方法可以反过来。

但我很困惑字符串中的encode方法是什么?

3 个答案:

答案 0 :(得分:10)

它对非文本编解码器很有用。

>>> 'Hello, world!'.encode('hex')
'48656c6c6f2c20776f726c6421'
>>> 'Hello, world!'.encode('base64')
'SGVsbG8sIHdvcmxkIQ==\n'
>>> 'Hello, world!'.encode('zlib')
'x\x9c\xf3H\xcd\xc9\xc9\xd7Q(\xcf/\xcaIQ\x04\x00 ^\x04\x8a'

答案 1 :(得分:5)

它首先使用默认编码解码为Unicode,然后编码回字节字符串。

>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> sys.setdefaultencoding('latin-1')
>>> '\xc4'.encode('utf-8')
'\xc3\x84'

此处,Ä'\xc4'为Latin-1,Ä为'\xc3\x84'为UTF-8。

答案 2 :(得分:-4)

为什么不想自己阅读精美的Python文档?

http://docs.python.org/release/2.5.2/lib/string-methods.html

“”“encode([encoding [,errors]])返回字符串的编码版本。默认编码是当前的默认字符串编码。可以给出错误来设置不同的错误处理方案。错误的默认值是'strict',意思是编码错误引发UnicodeError。其他可能的值是'ignore','replace','xmlcharrefreplace','backslashreplace'以及通过codecs.register_error注册的任何其他名称,请参阅第4.8.1节。可能的编码,参见4.8.3。版本2.0中的新增内容。版本2.3中更改:添加了对“xmlcharrefreplace”和“backslashreplace”以及其他错误处理方案的支持。“”“