字符串encode()方法使用指定的编码对字符串进行编码。如果未指定编码,则将使用 UTF-8。
从Python 3.0开始,字符串以Unicode格式存储,即字符串中的每个字符都由一个代码点表示。因此,每个字符串只是Unicode代码点的序列。
为了有效地存储这些字符串,将代码点序列转换为字节集。该过程称为编码。
存在各种不同的编码,它们对字符串的处理不同。流行的编码是utf-8,ascii等。
使用字符串的encode()方法,您可以将未编码的字符串转换为Python支持的任何编码。默认情况下,Python使用utf-8编码。
encode()方法的语法为:
string.encode(encoding='UTF-8',errors='strict')
默认情况下,encode()方法不需要任何参数。
它返回字符串的utf-8编码版本。如果发生错误,它将引发UnicodeDecodeError异常。
但是,它需要两个参数:
encoding -必须将字符串编码为的编码类型
errors-编码失败时的响应。有六种类型的错误响应
strict-默认响应,失败时会引发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!'
注意:尝试不同的编码和误差参数。