LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1137|回复: 3

请教中文输入问题

[复制链接]
发表于 2005-11-10 17:46:44 | 显示全部楼层 |阅读模式
我有一个GUI程序是用X写的,在文本框中可以输入英文,但不能输入中文。系统已经提供了
中文环境和输入法,在vi中可以输入、编辑中文。请问,在我的程序中,为什么不能接受中文?
实现中文输入需要做那些工作?请知道其中原因的高手指点迷津。谢谢!!
发表于 2005-11-11 12:37:19 | 显示全部楼层
编辑框可能把非ASCII(很可能是>0x80)字符忽略了,看看它怎么实现的做适当修改
使其接受本地编码(locale检查一下本地字符集)或某种UNICODE编码输入。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-11 16:29:12 | 显示全部楼层
应用程序和输入法是如何工作的?
输入法把中文转换成unicode,传给应用程序文本框,文本框再把中文显示出来,这样理解,对吗?
回复 支持 反对

使用道具 举报

发表于 2005-11-11 20:09:40 | 显示全部楼层
输入法内部通常采用UNICODE(比如UTF-16)编码的,传出的时候再转化为本地字符集比如linux常用的zh_CN.UTF-8或是Windoze的GBK。通常应用程序都会使用本地(locale命令的LC_ALL对应的编码)编码。但不推荐使用弱字符集如GBK/GB2312,因为他们同UNICODE字符集是无法一一映射的。导致本地编码无法描述全部的UNICODE字符。

UTF-8也是UNICODE的一种,是强字符集,比较新的linux都默认采用这个字符集了,而且兼容性非常好。如果应用程序由于某些原因无法直接使用如UTF-16/UTF-32编码,则可以考虑采用UTF-8。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表