为什么带有变音符号的字符串无法正常工作?有什么办法吗?

时间:2018-09-21 15:54:26

标签: lua logitech-gaming-software

我对脚本的了解不多。在Logitech游戏软件中,我想使用以下LUA脚本:

function OnEvent(event, family)
    if (event == "MOUSE_BUTTON_PRESSED" and arg == 2) then  
        PlayMacro("DPI Up")
    elseif (event == "MOUSE_BUTTON_RELEASED" and arg == 2) then
        PlayMacro("DPI Down")
    end
end

当我按下RMB时应该增加鼠标的DPI值,而当我释放RMB时应该降低它的鼠标DPI值,但是括号中的值(在PlayMacro之后)应该是我使用的语言(波兰语)。 > 在波兰语中,您用“ DPI wgórę”代替“ DPI Up”,用“ DPI wdół”代替“ DPI Down”,但是脚本不起作用。
我敢肯定这完全是关于变音符号的,因为例如“ Back”宏可以正常工作-在波兰语中您写了“ Wstecz” <-没有变音符号的单词,我还检查了诸如“ Zmiana DPI”的单词,并且所有单词都可以正常使用(因为我猜没有双眼痕)。

如何使脚本正常运行?

1 个答案:

答案 0 :(得分:0)

local UTF8_letters = {["ó"] = "\195\179", ["ę"] = "\196\153", ["ł"] = "\197\130"}

local function UTF8(str)
   return (str:gsub(".", UTF8_letters))
end

function OnEvent(event, family)
    if (event == "MOUSE_BUTTON_PRESSED" and arg == 2) then  
        PlayMacro(UTF8"DPI w górę")
    elseif (event == "MOUSE_BUTTON_RELEASED" and arg == 2) then
        PlayMacro(UTF8"DPI w dół")
    end
end