стандартные либы, которые ставятся вместе с имгуи вроде
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
чтобы юзать:
imgui.Text(u8:decode(sometext))
cp1251 -> utf8
local someVariable = u8:encode(sometext)
utf8 -> cp1251
то есть, у меня например есть текст "Всем привет!", который я условно буду отправлять при входе.
чтобы сохранить в файле с настройками, мне нужно его хранить на русском(cp1251) т.е.
helloText = u8:encode("Всем привет!")
чтобы уже в саму имгуишку нормально выводился текст, нужно с русского(cp1251) конвертировать в utf8, т.е.
imgui.Text(u8:decode(helloText))
p.s. helloText здесь - переменная, если у тебя есть просто текст, который ты хочешь на русском написать, можно делать
u8"Всем привет!"
пример
--я типа в imgui.OnDrawFrame() с началом типа определения окна и вся фигня
local sometext = ""
if imgui.Button(u8"Клацни по мне!") then -- если жмакнули
sometext = "Круто!"
end
imgui.Text(u8:decode(sometext)) -- россиянщина (cp1251) -> пендосщина(utf8)
--здесь типа конец всей фигни с имгуи
или можно
local sometext = ""
if imgui.Button(u8"Клацни по мне!") then -- если жмакнули
sometext = u8"Круто!" -- вместо того чтобы писать u8 в imgui.Text'e, бахнув здесь
end
imgui.Text(sometext)
лучше писать как в первом варианте, иногда нужно как во втором