中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-25 03:40
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » 关于CJK-GB.F16和HZK16字库 查看 2,026 回复 10
楼 主 关于CJK-GB.F16和HZK16字库 发表于 2003-05-31 00:00 ·  美国 肯塔基州 费耶特县 列克星敦 Charter_Communications
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
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的格式相同,但编码似乎不同。那应该如何解决呢?
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2 发表于 2003-05-31 00:00 ·  中国 湖南 常德 电信
中级用户
★★
积分 282
发帖 56
注册 2002-12-12 00:00
23年会员
UID 487
性别 男
状态 离线
是啊,如何解决呢?AW97不能在DOS窗口下运行,只能放弃了。
3 发表于 2003-06-02 00:00 ·  中国 河北 石家庄 联通
银牌会员
★★★
积分 1,833
发帖 648
注册 2002-11-08 00:00
23年会员
UID 197
性别 男
状态 离线
可能是结构不同吧,GB2312部分应该是相同的,然后在后面可能用了不同的排列方式,但因为包含的字相同,只是顺序变了一下,所以大小相同
4 发表于 2003-06-04 00:00 ·  中国 广东 佛山 禅城区 电信
元老会员
★★★★
积分 5,170
发帖 1,637
注册 2002-10-16 00:00
23年会员
UID 8
性别 男
来自 广东佛山
状态 离线
这是点阵信息的排列问题,每个汉字都是16*16点阵结构,每点用一Bit表示,则每个汉字占32字节,但有的汉字库是从上向下取信息的,即第1行、第2行……第16行。但有的汉字汉字库采用从左到右的方法,即第1列、第2列……16列。所以不同汉字系统的字库不一定能通用的。
大家可以试试把PDOS95的字库和UCDOS/CCDOS的字库互换,你看到的汉字便会面目全非,这是因为它们的汉字库取点阵信息的方法不同。
我的网志
http://hzmys.blog.163.com/
我的网盘
firststep.qjwm.com
fsmys.ys168.com
ssmys.ys168.com
www.brsbox.com/fsmys
www.brsbox.com/ssmys
www.brsbox.com/ccdos
5 发表于 2003-06-04 00:00 ·  美国 肯塔基州 费耶特县 列克星敦 Charter_Communications
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
能不能编写编写一个字库转换程序呢?我想把GB2312和BIG5字库拿到AW97中使用。
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

6 发表于 2003-12-31 00:00 ·  中国 湖南 株洲 电信
初级用户
积分 103
发帖 4
注册 2003-12-31 00:00
22年会员
UID 14695
性别 男
状态 离线
我觉得是gb和big5的编码不同造成的,16*16点阵读法是一样的,可用读字库及建小型字库的
方法分别转换。
7 发表于 2004-01-01 00:00 ·  中国 广东 佛山 三水区 电信
元老会员
★★★★
积分 5,170
发帖 1,637
注册 2002-10-16 00:00
23年会员
UID 8
性别 男
来自 广东佛山
状态 离线
编写转换程序应该是可行的。把每个字的点阵结构读出来,然后转换就是了,但是这并没有什么用。关键不是字库结构而是汉字系统根据内码对字库进行的处理。
比如16*16点阵字库,则第1行(列)用两个字节表示,(一个字节表示8个点,0为没点1为有点),然后乘以16行(列),即32个字字,把它变成点阵数据,然后再转成另一种字库结构方式就可以了。
我的网志
http://hzmys.blog.163.com/
我的网盘
firststep.qjwm.com
fsmys.ys168.com
ssmys.ys168.com
www.brsbox.com/fsmys
www.brsbox.com/ssmys
www.brsbox.com/ccdos
8 发表于 2004-08-01 00:00 ·  美国 加利福尼亚州 洛杉矶
初级用户
积分 166
发帖 26
注册 2004-07-22 00:00
21年会员
UID 28781
性别 男
状态 离线
以下是引用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点阵是按列排列的
9 发表于 2004-08-05 00:00 ·  中国 湖北 襄阳 电信
初级用户
积分 104
发帖 2
注册 2004-08-05 00:00
21年会员
UID 29698
性别 男
状态 离线
莫老师所转换成的GBK字库的HZK16那里有啊,我急需啊!!
10 发表于 2004-08-05 00:00 ·  中国 辽宁 抚顺 联通
银牌会员
★★★
积分 1,186
发帖 510
注册 2004-07-30 00:00
21年会员
UID 29279
性别 男
状态 离线
站长的贴真长知识,我怎么没有注意到呢!
11 发表于 2004-08-09 00:00 ·  中国 广东 佛山 三水区 电信
元老会员
★★★★
积分 5,170
发帖 1,637
注册 2002-10-16 00:00
23年会员
UID 8
性别 男
来自 广东佛山
状态 离线
我所拥有的16点阵字库取自UCWIN GOLD,可以直接替换UCDOS/CCDOS97的HZK16,只是无法显示GBK汉字而已。这是系统本身存在限制。
我的网志
http://hzmys.blog.163.com/
我的网盘
firststep.qjwm.com
fsmys.ys168.com
ssmys.ys168.com
www.brsbox.com/fsmys
www.brsbox.com/ssmys
www.brsbox.com/ccdos
论坛跳转: