Компьютер может хранить только байты.
Чтобы сохранить что-либо на компьютере, вы должны сначала кодировать , то есть преобразовать его в байты. Например:
- Если вы хотите сохранить музыку, вы должны сначала кодировать , используя
MP3
, WAV
и т. Д.
- Если вы хотите сохранить изображение, вы должны сначала кодировать , используя
PNG
, JPEG
и т. Д.
- Если вы хотите сохранить текст, вы должны сначала кодировать , используя
ASCII
, UTF-8
и т. Д.
MP3
, WAV
, PNG
, JPEG
, ASCII
и UTF-8
являются примерами кодировок . Кодировка - это формат для представления аудио, изображений, текста и т. Д. В байтах.
В Python строка байтов - это всего лишь последовательность байтов. Это не читается человеком. Под крышкой все должно быть преобразовано в байтовую строку, прежде чем она может быть сохранена на компьютере.
С другой стороны, строка символов, которую часто называют просто «строкой», представляет собой последовательность символов. Это читабельно для человека. Строка символов не может быть напрямую сохранена на компьютере, сначала она должна быть кодирована (преобразована в строку байтов). Существует несколько кодировок, с помощью которых символьная строка может быть преобразована в байтовую строку, например ASCII
и UTF-8
.
'I am a string'.encode('ASCII')
Приведенный выше код Python закодирует строку 'I am a string'
с использованием кодировки ASCII
. Результатом вышеприведенного кода будет байтовая строка. Если вы напечатаете его, Python будет представлять его как b'I am a string'
. Помните, однако, что байтовые строки не читаются человеком , просто Python декодирует их из ASCII
при их печати. В Python строка байтов представлена b
, за которой следует представление ASCII
строки байтов.
Строка байтов может быть декодирована обратно в символьную строку, если вы знаете кодировку, которая использовалась для ее кодирования.
b'I am a string'.decode('ASCII')
Приведенный выше код вернет исходную строку 'I am a string'
.
Кодирование и декодирование являются обратными операциями. Все должно быть закодировано, прежде чем оно может быть записано на диск, и оно должно быть декодировано, прежде чем оно может быть прочитано человеком.