字符串encode()方法使用指定的編碼對字符串進行編碼。如果未指定編碼,則將使用 UTF-8。
從Python 3.0開始,字符串以Unicode格式存儲,即字符串中的每個字符都由一個代碼點表示。因此,每個字符串只是Unicode代碼點的序列。
為了有效地存儲這些字符串,將代碼點序列轉換為字節(jié)集。該過程稱為編碼。
存在各種不同的編碼,它們對字符串的處理不同。流行的編碼是utf-8,ascii等。
使用字符串的encode()方法,您可以將未編碼的字符串轉換為Python支持的任何編碼。默認情況下,Python使用utf-8編碼。
encode()方法的語法為:
string.encode(encoding='UTF-8',errors='strict')
默認情況下,encode()方法不需要任何參數。
它返回字符串的utf-8編碼版本。如果發(fā)生錯誤,它將引發(fā)UnicodeDecodeError異常。
但是,它需要兩個參數:
encoding -必須將字符串編碼為的編碼類型
errors-編碼失敗時的響應。有六種類型的錯誤響應
strict-默認響應,失敗時會引發(fā)UnicodeDecodeError異常
ignore-從結果中忽略無法編碼的unicode
replace-將無法編碼的Unicode替換為問號?
xmlcharrefreplace-插入XML字符引用而不是無法編碼的unicode
反斜杠替換-插入\ uNNNN espace序列而不是無法編碼的unicode
namereplace-插入\ N {...}轉義序列,而不是無法編碼的unicode
# unicode 字符串 string = 'pyth?n!' # 輸出字符串 print('字符串:', string) # 默認編碼為 utf-8 string_utf = string.encode() # 輸出結果 print('編碼版本為:', string_utf)
運行該程序時,輸出為:
字符串: pyth?n! 編碼版本為: b'pyth\xc3\xb6n!'
# unicode 字符串 string = 'pyth?n!' # 輸出 string print('字符串:', string) # ignore error print('編碼后的版本 (ignore) :', string.encode("ascii", "ignore")) # 替換錯誤 print('編碼后的版本 (replace) :', string.encode("ascii", "replace"))
運行該程序時,輸出為:
字符串: pyth?n! 編碼后的版本 (ignore) : b'pythn!' 編碼后的版本 (replace) : b'pyth?n!'
注意:嘗試不同的編碼和誤差參數。