在 Cygwin 上的 Qt 应用程序中输入重音字母

在 Cygwin 上的 Qt 应用程序中输入重音字母

我的母语是葡萄牙语,在 Cygwin 上运行的任何 Qt 应用程序中输入重音字符时遇到问题。

几乎总是,我输入的任何重音字母在屏幕上的结果都是该字符(Unicode 的替换角色,u+fffd)。

我认为问题与解释键盘输入有关,而不是与显示字符有关。更具体地说,这个问题似乎与组合按键序列的结果输入有关,例如用“dead-tilde plus”a来获得“an” ã,或者用“dead-acute plus”e来获得“ é;”。当我cat在基于 Qt 的终端模拟器中使用在屏幕上显示包含重音字符的文件时,也没有问题,也没有从其他源复制/粘贴带有重音符号的文本,也没有使用单次击键产生的任何符号(例如ç,在巴西 ABNT2 键盘上有自己的键,或者按住任意键时产生的任何其他非组合符号替代组修改键)。另外,如果我在终端上输入任何内容(控制台或者终端)直接进入hexdump -C,很明显终端(或某些底层库)正在传递 3 字节的 UTF-8 序列"\xef\xbf\xbd",它对应于 u+fffd ,如上所述。

我还认为这是一个与 Qt 相关的问题,因为基于 GTK 的应用程序(例如 Gnome Terminal 或 LXTerminal)不会受到此问题的影响。

我已经尝试过的另一件事是在启动 Qt 应用程序和 X11 服务器本身之前更改区域设置,但它没有帮助。

所以我的问题是:

  1. 如何配置我的 Cygwin 环境,以便 Qt 理解重音字母(以及组合多个按键序列产生的任何其他 Unicode 符号)?

  2. 我是否必须安装和配置任何特定的 X11 输入库才能使 Qt 正常工作?我不熟悉用于处理输入的 Qt 依赖项,因此我们将不胜感激并记录任何帮助。

预先感谢您的任何帮助。

相关内容