Creative Writing Archive Silver's Blog

泥留鸿爪,旧游成文。

优麒麟系统下的QT中文乱码问题

2025-03-28 17:03:11 Qt相关
返回档案首页
这个问题可以分为**能看到文字候选框**和**看不到文字候选框**两种情况。 1. 能看到文字候选框: - plugins问题 - 检查qt的库目录,参考我的目录为`/usr/local/Trolltech/Qt-4.8.7/`,该目录下的`plugins`中,是否存在libfcitxplatforminputcontextplugin.so - 若不存在则安装`fcitx-libs`,并用find搜索该库,将其放入到`plugins/platforminputcontexts/`下即可 - 不要忘记设置qt程序的plugin路径,例如 ``` export QT_PLUGIN_PATH=/usr/local/Trolltech/plugins:$QT_PLUGIN_PATH ``` - 编码格式问题 - 根据搜索资料,麒麟系统运行在gb18030编码下,我要运行的程序是GBK编码,有几台机器出现当编码为utf-8时可以输入但保存会乱码,当编码为gbk时无法输入的问题。 - 解决方案:通过命令添加zh_CN.gb18030编码,并将运行环境改成gb18030 ``` dpkg-reconfigure locales ``` 2. 看不到文字候选框 - 该情况需要检查右下角输入法是否存在,目前测试发现当进程中存在`fcitx -d`但右下角没有键盘图标时会出现该种情况,解决方案见问题一。 --- 三、QT程序出现中文乱码 前提:首先排除程序自身问题,即在其他平台下可以正常显示中文。 - 首先检查QT的库目录,是否存在`fonts`文件夹,若不存在则需要重新编译qt,在configure阶段加上`-fontconfig` - 检查QT目录是否存在`plugins`文件夹,若不存在则从qt的编译目录下拷贝过来,同时设置QT_PLUGIN_PATH - 还有一种可能情况,当locale选择为zh_CN.GBK时程序无法输入中文,只有切换为zh_CN.UTF-8时才能正常输入。但该情况仅在一台机器上出现过,怀疑仍旧是过程现象而不是根源问题,但切换为zh_CN.utf-8后一切正常未出现预期外问题,所以也可以一试。 ---