if len(utf8) <= max_bytes:
    return utf8
i = max_bytes
while i > 0 and not utf8_lead_byte(utf8[i]):
    i -= 1
return utf8[:i]
for m in range(len(s.encode('utf8')) + 1):
    b = utf8_byte_truncate(s, m)
print(m, len(b), b.decode('utf8'))
Усечение строки до длины байта в Python