在Python中,unicode字符串中有一个encode
方法,用于从unicode编码为字节字符串。字符串中有一个decode
方法可以反过来。
但我很困惑字符串中的encode
方法是什么?
答案 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”以及其他错误处理方案的支持。“”“