标题: 关于CJK-GB.F16和HZK16字库
[打印本页]
作者: Wengier
时间: 2003-5-31 00:00
标题: 关于CJK-GB.F16和HZK16字库
AW97(CJKDOS)所带的GBK字库文件CJK-GB.F16和UCDOS/CCDOS97所支持的HZK16(指莫老师所转换成的GBK字库的HZK16,而不是原来的GB2312的HZK16文件)字库文件有一个很大的相似点,那就是体积完全相同,都是766,080字节,虽然内容不同。我刚才试着交换了一下,即用GBK的HZK16放到AW97中,而将CJK-GB.F16放到UCDOS中,结果得到了一个有趣的结果。
交换后,UCDOS和AW97都能正常启动,而且都能显示汉字!然而,再看一眼即知,屏幕上显示的文字虽然都是汉字,根本组不成句子。也就是说,显示出的汉字不对,显然发生了错位。以UCDOS为例,虽然屏幕上出现了大量的GBK汉字(如繁体字),但事实上UCDOS仍然不支持GB2312以外的汉字。
我的结论是HZK16和CJK-GB.F16的格式相同,但编码似乎不同。那应该如何解决呢?
作者: wyl
时间: 2003-5-31 00:00
是啊,如何解决呢?AW97不能在DOS窗口下运行,只能放弃了。
作者: LanE
时间: 2003-6-2 00:00
可能是结构不同吧,GB2312部分应该是相同的,然后在后面可能用了不同的排列方式,但因为包含的字相同,只是顺序变了一下,所以大小相同
作者: mys
时间: 2003-6-4 00:00
这是点阵信息的排列问题,每个汉字都是16*16点阵结构,每点用一Bit表示,则每个汉字占32字节,但有的汉字库是从上向下取信息的,即第1行、第2行……第16行。但有的汉字汉字库采用从左到右的方法,即第1列、第2列……16列。所以不同汉字系统的字库不一定能通用的。
大家可以试试把PDOS95的字库和UCDOS/CCDOS的字库互换,你看到的汉字便会面目全非,这是因为它们的汉字库取点阵信息的方法不同。
作者: Wengier
时间: 2003-6-4 00:00
能不能编写编写一个字库转换程序呢?我想把GB2312和BIG5字库拿到AW97中使用。
作者: doholyou
时间: 2003-12-31 00:00
我觉得是gb和big5的编码不同造成的,16*16点阵读法是一样的,可用读字库及建小型字库的
方法分别转换。
作者: mys
时间: 2004-1-1 00:00
编写转换程序应该是可行的。把每个字的点阵结构读出来,然后转换就是了,但是这并没有什么用。关键不是字库结构而是汉字系统根据内码对字库进行的处理。
比如16*16点阵字库,则第1行(列)用两个字节表示,(一个字节表示8个点,0为没点1为有点),然后乘以16行(列),即32个字字,把它变成点阵数据,然后再转成另一种字库结构方式就可以了。
作者: doshill
时间: 2004-8-1 00:00
Quote: |
以下是引用mys在2003-6-4 07:31:29的发言:
这是点阵信息的排列问题,每个汉字都是16*16点阵结构,每点用一Bit表示,则每个汉字占32字节,但有的汉字库是从上向下取信息的,即第1行、第2行……第16行。但有的汉字汉字库采用从左到右的方法,即第1列、第2列……16列。所以不同汉字系统的字库不一定能通用的。
大家可以试试把PDOS95的字库和UCDOS/CCDOS的字库互换,你看到的汉字便会面目全非,这是因为它们的汉字库取点阵信息的方法不同。 |
|
PDOS95里那个CHS16.FON和UCDOS的HZK16一样,都是按行排列的,可以互换。
貌似UCDOS的24点阵是按列排列的
作者: fanjing9
时间: 2004-8-5 00:00
莫老师所转换成的GBK字库的HZK16那里有啊,我急需啊!![em06]
作者: wchong
时间: 2004-8-5 00:00
站长的贴真长知识,我怎么没有注意到呢!
作者: MYS
时间: 2004-8-9 00:00
我所拥有的16点阵字库取自UCWIN GOLD,可以直接替换UCDOS/CCDOS97的HZK16,只是无法显示GBK汉字而已。这是系统本身存在限制。