c# - 类似 translit.net 但在 autohotkey 上

标签 c# c autohotkey transliteration

我想写Translit.net但在自动热键上。所以我成功地完成了只有一个字母的部分:

:*:a::а

:*:b::б

:*:v::в

:*:g::г

:*:d::д

...

但现在我在将“shh”翻译为“щ”以及其他“二对一”字符翻译时遇到问题。当我开始输入 shh 时,我会得到 схх,但我想要得到 щ。我能做什么?

我当前的想法:当我按下一个键时,它应该记下该字母并将未翻译的字母添加到 3 元素数组中,并检查数组元素是否创建 shh ,chsh 或任何其他大于 1 的组合。然后我可以删除最后 3 或 2 个输入的字母并发送我需要的俄语字母。也许有人知道一种更简单的方法来做到这一点。我希望我的脚本能够像我发布的页面一样工作。用 C 或 C# 代替 AutoHotkey 的解决方案也会对我有帮助。

最佳答案

我在使用 Autohotkey 的 unicode 版本时遇到同样的问题,但前提是文件以 UTF-8 格式保存,无 BOM 格式。

将文件保存为 UNICODE(UCS-2,必须是 Little Endian)可以解决该问题。

它还可以使用带 BOM 的 UTF-8,因此显然 autohotkey 无法自行确定字节顺序。

关于c# - 类似 translit.net 但在 autohotkey 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36090635/

相关文章:

console - Autohotkey 错误的击键发送到控制台

c# - Javascript:如何遍历模型中的对象列表

c - 将 32 移植到 64b printf 相关错误

c - 前/后增量指针

autohotkey - 如果键来自脚本,如何忽略它,但如果它来自 AHK 键盘,如何触发它?

windows-xp - 如何使用 AutoHotkey PostMessage 将 WM_WININICHANGE 发送到程序管理器?

c# - WPF 防止数据网格在窗口大小调整时自动调整大小

c# - LuaInterface - 如何限制对 .Net 类的访问?

c# - 我的 monodroid UI 元素(Button、TextView ...)中的枚举需要一个 .Net 包

c - 将二维数组传递给 C 函数