def split_utf8(s, n):
    """Split UTF-8 s into chunks of maximum length n."""
while len(s) > n:
    k = n
while ord(s[k]) & 192 == 128:
    k -= 1
yield s[:k]
s = s[k:]
yield s
Разделить строку Юникода на фрагменты по 300 байт без уничтожения символов