setClipboardText и текст на русском языке

Letovo

Известный
Автор темы
95
12
Версия MoonLoader
.026-beta
Здравствуйте, пытался сохранить в буфере обмена с помощью функции setClipboardText(text) текст на русском языке, но безуспешно.
Пытался сделать setClipboardText(u8"Привет"), но при нажатии Ctrl + V получал вот такой текст: Привет
Убираю u8 и получаю следующее: Ïðèâåò

Как это исправить? Заранее спасибо
 

Letovo

Известный
Автор темы
95
12
Дай полный код, так будет проще понять.
Самп работает на кодировке windows-1251 и не может принимать текст в кодировке UTF8

Lua:
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(100) end
        sampRegisterChatCommand('save', save_cmd)
    while true do
    wait(0)
    end
    end
    end
end
function save_cmd()
    setClipboardText(u8"Привет")
end

И если нажать ctrl + v, то оно вставит ПривеÑ
 

Неадекватная сова

Известный
Проверенный
333
294
а у меня серавно не работает, знает кто еще какие-то способы это сделать?
На кофейной гуще узнаем где не работает. На мимгуи

Lua:
local imgui = require 'mimgui'
local ffi = require 'ffi'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local renderWindow = imgui.new.bool(true)
local input = imgui.new.char[128]("")

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)

local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
    function(player)
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2, resY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        if imgui.Begin('Main Window', renderWindow) then
            imgui.InputTextWithHint('##input', u8'Текст', input, ffi.sizeof(input))
            if imgui.Button(u8'Скопировать') then
                setClipboardText(u8:decode(ffi.string(input)))
            end
            imgui.End()
        end
    end
)

function main()
    while not isSampAvailable() do wait(0) end

    wait(-1)
end