str.encode()

Метод encode() преобразует строку (str) в объект bytes с использованием указанной кодировки. Это основной способ перевести текст в байтовое представление для записи в файл, передачи по сети или работы с устройствами.

Сигнатура

str.encode(encoding='utf-8', errors='strict')

Параметры

  • encoding — название кодировки (например, 'utf-8', 'ascii', 'cp1251'). По умолчанию 'utf-8'.

  • errors — стратегия обработки ошибок: 'strict' (по умолчанию — исключение), 'ignore' (пропустить), 'replace' (заменить на ?), 'xmlcharrefreplace', 'backslashreplace' и др.

Возвращаемое значение

Объект bytes — байтовое представление строки.

Примеры использования

Пример 1. Кодирование в UTF-8.

text = "Arduino"
print(text.encode())
b'Arduino'

Пример 2. Кириллица в UTF-8.

Один кириллический символ занимает 2 байта в UTF-8:

text = "Алаш"
print(text.encode("utf-8"))
b'\xd0\x90\xd0\xbb\xd0\xb0\xd1\x88'

Пример 3. Ошибка при ASCII.

try:
    "Привет".encode("ascii")
except UnicodeEncodeError as e:
    print("Ошибка:", e)
Ошибка: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

Пример 4. Игнорирование непригодных символов.

print("Hello, Алаш!".encode("ascii", errors="ignore"))
print("Hello, Алаш!".encode("ascii", errors="replace"))
b'Hello, !'
b'Hello, ????!'

Пример 5. Отправка строки по Serial-порту.

import serial  # требуется pyserial
# ser = serial.Serial("COM3", 9600)
# ser.write("LED_ON\n".encode("utf-8"))
payload = "LED_ON\n".encode("utf-8")
print(payload)
b'LED_ON\n'

См. также

Примечание

Лицензия и источники

Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.