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

我对脚本编写并不是很了解。在罗技游戏软件中,我想要使用以下的 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

当我按下右键时它应该增加我的鼠标 DPI,当我松开右键时它应该减少它,但是括号中的值(在PlayMacro之后)应该是我使用的语言(波兰语)。

在波兰语中,你应该写“DPI w górę”而不是“DPI Up”,“DPI w dół”而不是“DPI Down”,但这样脚本就不能正确工作。

我非常确定这全部是关于变音符号的问题,因为例如“Back”宏是正常的- 在波兰语中,你应该写“Wstecz”<-没有变音符号的单词,我还检查了诸如“Zmiana DPI”之类的单词,所有这些单词都正常工作(因为它们没有变音符号,我想)。

我该怎么做才能使脚本正常工作呢?

点赞
用户1847592
用户1847592
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

本地的UTF8_letters是一个包含指定字母和它们的UTF-8编码的Lua表格。

UTF8是一个将字符串替换成UTF-8编码字符的函数。

MOUSE_BUTTON_PRESSED事件被触发,并且鼠标右键被按下,播放特定名称的巨集DPI w góre

MOUSE_BUTTON_RELEASED事件被触发,并且鼠标右键被释放,播放特定名称的巨集DPI w dol

2018-09-22 08:35:15