Микропитон из строки в байты

MicroPython v1.18-23-g7d71ae25e-custom
Имеется строка '\xF0\xF1\xF2', как преобразовать в байты b'\xF0\xF1\xF2'?
bytes('\xF0\xF1\xF2','ascii') и bytes('\xF0\xF1\xF2','cp-1251') дает такой же результат как и bytes('\xF0\xF1\xF2','utf-8'). То есть юникод b'\xc3\xb0\xc3\xb1\xc3\xb2'


Ответы (1 шт):

Автор решения: insolor

На обычном Python работает вариант через кодировку "latin":

>>> bytes('\xF0\xF1\xF2', encoding="latin")
b'\xf0\xf1\xf2'

На micropython это не работает, пока лучшее что смог придумать - брать код каждого символа функцией ord, потом полученный набор чисел преобразовать в байтовую строку:

>>> text = '\xF0\xF1\xF2'
>>> bytes(map(ord, text))
b'\xf0\xf1\xf2'
# Или через выражение-генератор вместо функции map
>>> bytes(ord(char) for char in text)
b'\xf0\xf1\xf2'
→ Ссылка