mar*_*ark 5 windows unicode scripting autohotkey keyboard-shortcuts
我一直在尝试找到一种方法来重新映射我的键盘并发送5位十六进制unicode字符,这里描述的方法:ahk Send仅支持4位十六进制代码{U+nnnn},我知道在过去,autohotkey没有原生支持 unicode,因此需要一些函数才能做到这一点,也许这就是我的解决方案。
\n\n例子:
\n\n#If GetKeyState("CapsLock","T")\n+u::Send {U+1D4B0}\nRun Code Online (Sandbox Code Playgroud)\n\n结果是 \xed\x92\xb0 而不是 ,而 \xed\x92\xb0 的代码是 {U+D4B0},这意味着 AHK 只读取最后 4 位数字。即使我需要创建新功能来实现这一目标,我该如何解决它?
\n\n谢谢
\n\n-标记
\n大于 0xFFFF 的 Unicode 值必须编码为两个代理对:
+u:: SendInput ,{U+D835}{U+DCB0}
Run Code Online (Sandbox Code Playgroud)
以下是将 0x10000 到 0x10FFFF 范围内的 Unicode代码点转换为代理对的算法,摘自维基百科:
首先从代码点减去 0x10000 ,得到0xFFFFF 范围内的数字。
然后将数字右移10 位并添加 0xD800 以获取高代理项。
取数字的最低十位并添加 0xDC00 以获得低位代理
| 归档时间: |
|
| 查看次数: |
1255 次 |
| 最近记录: |