QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2804|回复: 32

请问如何在linux下用c显示汉字

[复制链接]
发表于 2004-7-15 11:10:55 | 显示全部楼层 |阅读模式
以前我用turboc显示汉字要在图形模式下并调用汉字字库来显示汉字,现在准备在linux下做一个汉字输入法,但是不知道如何显示汉字,还请高手指点一二
发表于 2004-7-15 11:18:56 | 显示全部楼层

Re: 请问如何在linux下用c显示汉字

[quote="zhoujc"]以前我用turboc显示汉字要在图形模式下并调用汉字字库来显示汉字,现在准备在linux下做一个汉字输入法,但是不知道如何显示汉字,还请高手指点一二 [/quote]

如果是console下,请参考一下,zhcon和cce
如果是Xwindow下,不需要考虑任何问题。

此外,建议你不要再作输入法了。够多了。
回复

使用道具 举报

 楼主| 发表于 2004-7-16 11:19:46 | 显示全部楼层
我做的是手机的汉字输入法
请问zhcon和cce分别是什么呢?库吗?
我接触linux编程不久问题如果太弱请别见怪
谢谢
回复

使用道具 举报

 楼主| 发表于 2004-7-16 15:51:48 | 显示全部楼层
我下载了cce-0.51并安装了
请问如何调用?还有能看到它的源代码吗?
回复

使用道具 举报

发表于 2004-7-17 13:27:58 | 显示全部楼层
在Linux下,与turbo c的graphics相似的图形库有svgalib、ggi、SDL等;既是在手机上使用的,应该采用12x12的点阵汉字显示较好,即根据汉字库的点阵信息在屏幕上画点。

点阵汉字的显示方法,可以参考我写的五笔练习forLinuxSDL版(16x16汉字库):
http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo&did=1871



zhcon和cce是中文控制台,相当于win/dos下的ucdos。
回复

使用道具 举报

发表于 2004-7-18 20:27:00 | 显示全部楼层
1.根据我了解的情况:
你的linux上没有中文的locale吗?
如果在字符界面上开发.
使用环境变量LANG或LC_ALL...等指定正确的中文locale后(应该是zh.GB3213之类,记不清可能错)
并且在程序开始的地方调用
setlocale(LC_TYPE,""); ------(空串表示按照环境变量设置,也可以直接指定locale)
.. ...
printf之类的函数应该能正确显示汉字(只要装上了正确的终端使用的中文字体)
-------身边没有linux不能试验?
2.输入法的开发为什么要设计到字体的现实?--不理解.
3.如果自己非要在图形界面上自己绘制图形,也可以使用freetype库提供的字体绘制功能.为什么要自己搞?
请指教?
回复

使用道具 举报

 楼主| 发表于 2004-7-19 09:08:21 | 显示全部楼层
首先谢谢lanche帮我解决了困惑了我个星期的难题
我是为一个pda开发输入法,要考虑到移植到arm上去后很多原来电脑上的linux资源可能不能调用了
回复

使用道具 举报

 楼主| 发表于 2004-7-19 09:41:31 | 显示全部楼层
首先谢谢lanche帮我解决了困惑了我个星期的难题
我是为一个pda开发输入法,要考虑到移植到arm上去后很多原来电脑上的linux资源可能不能调用了
回复

使用道具 举报

 楼主| 发表于 2004-7-19 10:17:48 | 显示全部楼层
我下载了你的输入法,不过不知道怎么安装,你说的wblx-sdl-0.6.8目录没有啊
看了源代码,查找汉字内码是那个check_key函数吗?你写的是五笔输入法,可是我没看懂那个程序是如何根据输入的按键信息来查找内码的.
是不是hzk16中的汉字内码跟它的笔画有对应关系的?如果是,那我写拼音输入法怎么办?
谢谢指点
回复

使用道具 举报

发表于 2004-7-19 13:25:16 | 显示全部楼层
解压、编译,运行即可,无须安装。在该游戏中是随机生成汉字(内码),在有键盘输入时记下所输入的外码,然后检查五笔码表,如果对应的内码与之前生成的汉字一致就消去屏幕上的字。

你要做拼音输入法则要用外码去查询拼音码表(自建或借用)得出汉字的内码,如果你的pda已经有中文处理能力,那么直接显示汉字即可;如要自己显示汉字,则再计算其区位码,根据区码和位码从汉字库中取出汉字的点阵信息并描点。
回复

使用道具 举报

 楼主| 发表于 2004-7-19 15:55:03 | 显示全部楼层
你压缩包中的wubi.tab就是五笔码表吧.哪里有拼音码表下载呢?
还有我看到码表中每个汉字好像占6个字节,后面4个是内码,前面两个是什么呢?还有拼音码表是不是也是按照这个规律写的?
这个任务好像很难完成 :-(
回复

使用道具 举报

发表于 2004-7-19 16:16:17 | 显示全部楼层
在wubi.tab中,前面是汉字的内码,紧接着是该汉字的五笔编码共4位,不足的以减号补齐,而且不换行。它并不是标准的五笔码表,而是我根据游戏需要写一个程序从五笔码表中生成的。

码表很好找呀,windows和Linux现有的输入法不就有好多么,如果你做的不是商业程序,不涉及版权或专利问题。
回复

使用道具 举报

 楼主| 发表于 2004-7-19 16:43:42 | 显示全部楼层
能让我看看你那个生成wubi.tab的程序吗?
还有现在虽然有很多输入法,可是很多都是封装好的,没办法单独看到码表,如果你有上传一个好吗?
谢谢
回复

使用道具 举报

发表于 2004-7-19 17:12:53 | 显示全部楼层
那个程序是好几年前写的了,当时还是用svgalib写五笔练习的,硬盘坏过n次,也换过几次,早就没了。

找zhcon和cce中的码表罢,你不是已经下载并安装了么?
回复

使用道具 举报

 楼主| 发表于 2004-7-19 17:31:18 | 显示全部楼层
下载并解压了,然后在终端输入./wblx出现这样的信息
Audio device open for 44.1Khz, stereo, 16bit failed
Trying 44.1Khz, 8bit stereo.
Audio device open for 44.1Khz, stereo, 8bit failed
Trying 48Khz, 16bit stereo.
Can't open file: ./font/asc16 !
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-7 20:44 , Processed in 0.039776 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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