str.decode
Декодирует байтстроку в строку, используя зарегистрированный кодек.
str.decode([encoding[, errors]])
encoding -- Название кодировки. По умолчанию — системная кодировка, доступная из sys.getdefaultencoding().
+py2.3 errors='strict' -- Наименование схемы обработки ошибок. По умолчанию — 'strict'.
+py2.3 errors='strict' -- Наименование схемы обработки ошибок. По умолчанию — 'strict'.
Внимание
Начиная с +py3.0 этот метод является методом типа
bytes
, а не str
.Начиная c +py2.7 параметры могут быть заданы при помощи именованных аргументов.
На заметку
Имена доступных кодировок лучше всего узнавать из документации к модулю codecs.
from sys import getdefaultencoding
# Python 3 ====================
getdefaultencoding() # utf-8
my_bytes = 'котобус cat'.encode()
my_bytes.decode('ascii', errors='backslashreplace')
# '\\xd0\\xba\\xd0\\xbe\\xd1\\x82\\xd0\\xbe\\xd0\\xb1\\xd1\\x83\\xd1\\x81 cat'
my_bytes.decode('ascii', errors='surrogateescape')
# '\udcd0\udcba\udcd0\udcbe\udcd1\udc82\udcd0\udcbe\udcd0\udcb1\udcd1\udc83\udcd1\udc81 cat'
# Python 2 ====================
getdefaultencoding() # ascii
my_string = 'котобус cat'
my_string.decode()
# UnicodeDecodeError
my_string.decode(errors='ignore')
# u' cat'
my_string.decode(errors='replace')
# u'\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd cat'
my_string.decode('utf-8')
# u'\u043a\u043e\u0442\u043e\u0431\u0443\u0441 cat'
Схемы обработки ошибок
Схемы различаются между собой тем, что будет происходить при обнаружении в докодируемой строке неподдерживаемых кодировкой символов.
Имя | Что происходит |
---|---|
strict | Возбуждается UnicodeError (или наследника). |
ignore | Символы пропускаются. |
replace | Символы заменяются на U+FFFD (REPLACEMENT CHARACTER ). |
+py3.5backslashreplace | Символы заменяются на последовательности, начинающиеся с обратной косой черты (слеша). |
+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.decode, str, decode
В разделе «str (строка)»:
str.capitalize
str.casefold
str.center
str.count
str.encode
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)
На заметку
Зарегистрированные пользователи могут публиковать свои Статьи.