| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2690 人关注过本帖
标题:请教一个在VFP中输入UNICODE扩展字符的问题
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
是的,字库是储存字的图像的文件,但光有图像还不成,要程序能够识别特定的内码才能知道去字库找那幅字图。现在的问题是当今Windows系统,微软并没有把四字节的内码开放出来使用,故一般的程序无法识别你所说的两万个字之外的汉字。我们现在的系统,统一是两字节的内码(一个字节是英文、阿拉伯数字等普通字符,而汉字要占两个英文字符的位置)。现在用的是GBK内码系统,是两字节的Unicode码,所以你输入四位十六进制码时就自动出汉字,但这种两字节的体系,只能容纳两万多汉字。要使用更多的字符,就要用到四字节的编码体系,即四字节Unicode码,此时每个汉字等于前面的两个。

在程序中,使用两字节编码抑或四字节编码,其实不是问题,但问题是我们的程序并不是直接读字库取字图显示的,而是要借用Windows的功能去读取和显示字图的,偏偏现在微软出品的Windows系统,不支持四字节编码,因此,当我们给出一个四字节的内码到Windows,我们当它是一个汉字,但Windows却当是两个汉字,而这两个被拆开了的假汉字它又不认识,所以显示出两个问号。

在Office套装中,因为这套程序是微软自己写的,又专门用于排版和印刷,所以它内部可以使用四字节Unicode编码并取出正确的字图,但外面的程序,Windows是不认的——不是真的不认识,而是拒绝接受。因此,UniFonts系统,虽然给出了Unicode全集中的七万字符,但只能在Office、PDF之类专用排版软件上使用。

以我现在得到的结论看,别说是VFP,即使是VB、C之类的程序语言,也无法直接使用四字节的Unicode编码显示大字符集汉字。但是,如果我们知道字库的构造,能够自己读取字库图像,那么就有办法绕开Windows,用绘图的方式显示那些汉字。这个工作量是比较大的。如果说真有使用系统功能的办法,我想恐怕就是一开始我给出的那个连接了,可惜全是英文的,看不太懂。

[ 本帖最后由 TonyDeng 于 2011-9-6 14:24 编辑 ]

授人以渔,不授人以鱼。
2011-09-06 14:15
XTWQK
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-9-3
收藏
得分:0 
上面这段文字我基本理解了,谢谢老师,这件事先告一段吧,老师费心了.难得您高风亮节,今后有事还会向您请教.
顺便问一下,UNICODE是否是今后发展的大趋势?今后某一天是否会全面开放?在"汉典"网站,有很多人关心这个问题,也有很多人想使用大字符集.但都几乎被这个问题困惑.
我曾想把.DBF表导入ACCESS中,但不成功,用另存为HTML的方法,ACCESS接收的全是乱码.借用EXCEL作中间介质,其库容量小于两万条,真是走投无路了.
2011-09-06 18:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
Unicode是今后的必然方向,这已经很明确了。

授人以渔,不授人以鱼。
2011-09-06 18:14
快速回复:请教一个在VFP中输入UNICODE扩展字符的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039856 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved