У меня была точно такая же проблема, за исключением японских символов. Хотя Lua не поддерживает UTF-8, Corona действует так же, как и он. Это означает, что ... если вы передаете строку UTF-8 в display.newText (...), она должна отображаться правильно. Теперь, если вы выводите данные на консоль, она фактически распечатывает необработанные байты строки. И, если вы попытаетесь напечатать длину строки, она фактически выведет количество байтов.
Итак, в итоге, Lua рассматривает все строки как массив байтов. Он ничего не знает о UTF-8. Некоторые методы API-интерфейса Corona при передаче строк UTF-8 будут правильно отображать строки.
У меня были проблемы, когда я смешивал UTF-8 с простыми символами ASCII, что, по-моему, смутило Corona (я имею в виду, что я смешал английские символы с японскими символами ... хотя все еще UTF-8). У меня есть догадка, что каждый символ в строке должен иметь одинаковую длину в байтах, чтобы Corona отображала его правильно. Попробуйте распечатать по одному символу за раз, чтобы увидеть, поможет ли это. Пожалуйста, не стесняйтесь оставлять комментарии здесь, если у вас возникли проблемы. Я бы тоже хотел разобраться в этом вопросе.