在Python中,unicode字符串中有一個encode
方法用於從unicode編碼爲字節字符串。在字符串中有一個decode
方法來做相反的處理。Python字符串編碼方法
但我很困惑什麼encode
方法在字符串中?
在Python中,unicode字符串中有一個encode
方法用於從unicode編碼爲字節字符串。在字符串中有一個decode
方法來做相反的處理。Python字符串編碼方法
但我很困惑什麼encode
方法在字符串中?
對於非文本編解碼器非常有用。
>>> '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'
它首先使用默認編碼解碼爲Unicode,然後編碼回字節字符串。
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> sys.setdefaultencoding('latin-1')
>>> '\xc4'.encode('utf-8')
'\xc3\x84'
這裏,'\xc4'
是Latin-1的a和'\xc3\x84'
是UTF-8爲一個。
爲什麼你不想自己閱讀精美的Python文檔?
http://docs.python.org/release/2.5.2/lib/string-methods.html
「」」編碼([編碼[,錯誤]])返回字符串的編碼版本,默認的編碼是當前的默認字符串編碼。可給予錯誤設置一個不同的錯誤處理方案錯誤的默認值是'strict',這意味着編碼錯誤會引發一個UnicodeError。其他可能的值有'ignore','replace','xmlcharrefreplace','backslashreplace'和通過codecs.register_error註冊的任何其他名稱,參見4.8節.1。有關可能的編碼列表,請參見第4.8.3節。2.0版本中的新增功能。2.3版本中的更改:支持'xmlcharrefreplace'和'backslashreplace'以及其他錯誤處理方案的添加。「」「
Python的文檔在解釋編碼和解碼工作以及何時發生隱式轉換方面做得很差。在這種情況下,指向文檔的簡單指針不夠好。 – Triptych 2011-03-03 07:48:12
看看這個演示文稿'在Python中的Unicode,完全揭祕'http://farmdev.com/talks/unicode/ – rubayeet 2011-03-03 06:47:55
我見過。這並不能解釋我的問題。 – amit 2011-03-03 12:42:33