x-x*_*x-x 5 x11 unicode input keyboard-layout xorg
这与这个问题完全相同; 但是,在接受的答案中链接的代码将近11年,代码中的这条评论会导致我的重复问题:
希望有一天由Xlib通过XmbLookupString()提供keysym - > UTF-8转换,理想情况下不必在X应用程序中完成.但我们还没有.
我们到了吗?我知道XwcLookupString,但有点......
wchar_t unicode = XKeySymToWideChar( keysym );
Run Code Online (Sandbox Code Playgroud)
...会更加简单和合理,并且无论何时添加或更改KeySyms都不需要更新.
X11/Xlib中是否有一个简单的函数可以将KeySym映射到它的Unicode等价物?
接受的答案不正确,建议的源代码也不是标准且可靠的方法。由于键盘布局超出了最初的 X11 范围,因此添加内容在 xkb 中实现,即“X 键盘扩展”,大约于 1996 年添加,并且已经存在很长时间了。
XKB_EXPORT uint32_t
xkb_keysym_to_utf32(xkb_keysym_t keysym)
XKB_EXPORT int
xkb_keysym_to_utf8(xkb_keysym_t keysym, char *buffer, size_t size)
Run Code Online (Sandbox Code Playgroud)
是您需要的功能。utf-8版本内部使用utf-32版本,但是你使用你需要的版本。
尝试使用此node.js模块生成C表:https://github.com/substack/node-keysym.它基于以下数据集:https://github.com/substack/node-keysym/blob/master/data/keysyms.txt
| 归档时间: |
|
| 查看次数: |
4385 次 |
| 最近记录: |