Микропитон из строки в байты
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'