str.encode
Кодирует строку в байты/байтстроку, используя зарегистрированный кодек.
str.encode([encoding[, errors]])
-> bytes в Python 3 / str в Python 2
encoding -- Название кодировки. По умолчанию — системная кодировка, доступная из sys.getdefaultencoding().
+py2.3 errors='strict' -- Наименование схемы обработки ошибок. По умолчанию — 'strict'.
+py2.3 errors='strict' -- Наименование схемы обработки ошибок. По умолчанию — 'strict'.
Начиная c +py2.7 параметры могут быть заданы при помощи именованных аргументов.
Схемы обработки ошибок
Схемы различаются между собой тем, что будет происходить при обнаружении в докодируемой строке неподдерживаемых кодировкой символов.
Зарегистрировать новую схему можно при помощи
На заметку
Имена доступных кодировок лучше всего узнавать из документации к модулю codecs.
from sys import getdefaultencoding
# Python 3 ====================
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'
# Python 2 ====================
getdefaultencoding() # ascii
my_string = 'кот cat'.decode('utf-8')
type(my_string) # unicode
my_string.encode()
# UnicodeDecodeError
my_string.encode(errors='ignore')
# u' cat'
my_string.encode(errors='replace')
# u'??? cat'
my_string.encode('utf-8')
# '\xd0\xba\xd0\xbe\xd1\x82 cat'
my_string.encode(errors='xmlcharrefreplace')
# 'кот cat'
my_string.encode(errors='backslashreplace')
# '\\u043a\\u043e\\u0442 cat'
Схемы обработки ошибок
Схемы различаются между собой тем, что будет происходить при обнаружении в докодируемой строке неподдерживаемых кодировкой символов.
Имя | Что происходит |
---|---|
strict | Возбуждается UnicodeError (или наследника). |
ignore | Символы пропускаются. |
replace | Символы заменяются на U+FFFD (REPLACEMENT CHARACTER ). |
+py2.3xmlcharrefreplace | Символы заменяются на соответствующее им XML-представление. |
+py2.3backslashreplace | Символы заменяются на последовательности, начинающиеся с обратной косой черты (слеша). |
+py3.5namereplace | Символы заменяются на последовательности вида \N{...} . |
+py3.1surrogateescape | Заменяет каждый байт на код суррогата (от U+DC80 до U+DCFF ). |
+py3.1surrogatepass | Игнорирует в строке коды суррогатов. Используется со следующими кодеками: utf-8, а также начиная с +py3.4 utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le. |
Зарегистрировать новую схему можно при помощи
codecs.register_error()
.
Синонимы поиска: str.encode, str, encode
В разделе «str (строка)»:
str.capitalize
str.casefold
str.center
str.count
str.decode
str.endswith
str.expandtabs
str.find
str.format
str.format_map
str.index
str.isalnum
str.isalpha
str.isascii
str.isdecimal
str.isdigit
str.isidentifier
str.islower
str.isnumeric
str.isprintable
str.isspace
str.istitle
str.isupper
str.join
str.ljust
str.lower
str.lstrip
str.maketrans
str.partition
str.replace
str.rfind
str.rindex
str.rjust
str.rpartition
str.rsplit
str.rstrip
str.split
str.splitlines
str.startswith
str.strip
str.swapcase
str.title
str.translate
str.upper
str.zfill
Форматирование при помощи %
Форматные строки (f-string)
На заметку
В соответствующем разделе вы можете зарегистрировать сообщество по интересам, чтобы о нём узнали и другие посетители сайта — возможно, так вы отыщите новых единомышленников и друзей.. И не важно виртуальное оно, или вполне реальное, давно существующее, или только-только придуманное.