Метод encode
в Python: кодирование строки в байты.
Кодирует строку в байты/байтстроку, используя зарегистрированный кодек.
encode(encoding="utf-8", errors="strict")
encoding
— название кодировки. По умолчанию — системная кодировка, доступная изsys.getdefaultencoding()
.errors=strict
— наименование схемы обработки ошибок. По умолчанию —strict
.
Имена доступных кодировок лучше всего узнавать из документации к модулю codecs
.
from sys import getdefaultencoding
getdefaultencoding() # utf-8
my_string = 'кот cat'
type(my_string) # str
my_string.encode()
# b'\xd0\xba\xd0\xbe\xd1\x82 cat'
my_string.encode('ascii')
# UnicodeDecodeError
my_string.encode('ascii', errors='ignore')
# b' cat'
my_string.encode('ascii', errors='replace')
# b'??? cat'
my_string.encode('ascii', errors='xmlcharrefreplace')
# b'кот cat'
my_string.encode('ascii', errors='backslashreplace')
# b'\\u043a\\u043e\\u0442 cat'
my_string.encode('ascii', errors='namereplace')
# b'\\N{CYRILLIC SMALL LETTER KA}\\N{CYRILLIC SMALL LETTER O}\\N{CYRILLIC SMALL LETTER TE} cat'
surrogated = '\udcd0\udcba\udcd0\udcbe\udcd1\udc82 cat'
surrogated.encode()
# UnicodeEncodeError
surrogated.encode(errors='surrogateescape')
# b'\xd0\xba\xd0\xbe\xd1\x82 cat'
surrogated.encode(errors='surrogatepass')
# b'\xed\xb3\x90\xed\xb2\xba\xed\xb3\x90\xed\xb2\xbe\xed\xb3\x91\xed\xb2\x82 cat'
Зарегистрировать новую схему можно при помощи codecs.register_error()
.