Использование внешнего модуля для работы со строками UTF-8
Стандартная таблица string не позволяет работать со строками в формате UTF-8. В качестве решения можно использовать одну из библиотек репозитория LuaRocks. Ниже приведен пример установки и использования библиотеки luautf8, которая реализует все аналогичные методы таблицы stringдля работы со строками в формате UTF-8.
Для загрузки и сборки библиотеки luautf8посредством LuaRocks необходимо выполнить команду luarocks install luautf8``.
Пример
C:\Work\LuaRocks>luarocks install luautf8
Installing https://luarocks.org/luautf8-0.1.7-1.src.rock
luautf8 0.1.7-1 depends on lua >= 5.1 (5.4-1 provided by VM: success)
C:\Work\mingw64\bin\gcc.exe -O2 -c -o lutf8lib.o -IC:\Program Files\MyOffice\Lua547\include lutf8lib.c
C:\Work\mingw64\bin\gcc.exe -shared -o C:\Users\ADMIN\AppData\Local\Temp\luarocks_build-luautf8-0.1.7-1-9864882\lua-utf8.dll lutf8lib.o C:\Program Files\MyOffice\Lua547\bin\lua54.dll -lm
luautf8 0.1.7-1 is now installed in C:\Work\LuaRocks\5.4 (license: MIT)
Далее необходимо скопировать полученную библиотеку lua-utf8.dll из папки C:\Work\LuaRocks\5.4\lib\lua\5.4 в папку bin надстройки, а затем использовать вызовы библиотеки в теле надстройки:
local utf_8 = require 'lua-utf8'
..............................
text = "Здравствуй, мир"
position = utf_8.find(text, "мир") -- 13