中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 11:38
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS汉化世界 & 中文系统 (中文化室) » 让非汉字系统显示汉字!5.20新版
可打印版本  85,983 / 373
第256楼 download 发表于 2007-03-25 09:00
初级用户 发帖 101 积分 199
奇怪了,生成后对比了一下
http://www.cn-dos.net/forum/attachment.php?aid=950&checkid=de74b&download=1
和这个的不同
第257楼 download 发表于 2007-03-25 12:07
初级用户 发帖 101 积分 199
生成GBK 的HZK后我对比了一下这里提供的HZK16。GBK,发现不同,
故传到无忧(这里只能上传100K)那边,你下载看看是怎么回事?

为防止大家用到有问题的汉字库,特加上密码。压缩包密码是:benshi
下载地址: 第259楼
http://bbs.wuyou.com/viewthread.php?tid=100870&pid=1008822&page=26&extra=page%3D1
第258楼 本是 发表于 2007-03-25 14:48
银牌会员 发帖 790 积分 2,227
我查了UCWIN带的HZK16.GBK,发现它不是按照公式
“(ch1-0x81)*190+(ch2-0x40)-(ch2/128)”来计算的!
那是生成GBK码本的汉字顺序,不是字库中的排列顺序。
GBK字库是分区存放的!它为了兼容GB2312的HZK16,先原序存放1~94区,
然后另分3个区域存放扩充部分,详情见下面的列表:

  GBK字符集范围
 相当于
“GB区位码” 分区   高位 || 低位  
—————————————————————————————
1~94区   ●GB汉字: A1~FE || A1~FE
— — — — — — — — — — — — — — —
95~126区  ●扩充汉字: 81~A0 || A1~FE
127~159区  ●扩充汉字: 81~A0 || 40~A0
159+~254+区●扩充汉字: A1~FE || 40~A0
—————————————————————————————
我观察下来好像就是这个顺序。不过,你再核对一下,确认无误后才能开始调整你的程序。
我困了,要睡了~~~
第259楼 jb88 发表于 2007-03-25 22:49
新手上路 发帖 8 积分 18
牛人牛贴!
第260楼 download 发表于 2007-03-26 02:17
初级用户 发帖 101 积分 199
Originally posted by 本是 at 01:48 AM:
我查了UCWIN带的HZK16.GBK,发现它不是按照公式

那是生成GBK码本的汉字顺序,不是字库中的排列顺序。
GBK字 ...


头大,懒得去研究了,搞这么麻烦到时读取也麻烦!干脆就用
“(ch1-0x81)*190+(ch2-0x40)-(ch2/128)”来定位算了,

给字库起个新名字:GBK顺序字库,以前的则为兼容字库。
第261楼 download 发表于 2007-03-26 02:27
初级用户 发帖 101 积分 199
你试试用上述代码来读取我生成的那个GBK字库看看成功没?
第262楼 qingyangecho 发表于 2007-03-26 02:36
初级用户 发帖 40 积分 97
Originally posted by download at 2007-3-25 12:52 AM:
不开源,捆绑N个流氓插件,再加收注册费每台机50元 ^_^



嗯,鼓掌,中国未来的比而盖次
第263楼 download 发表于 2007-03-26 04:20
初级用户 发帖 101 积分 199
Originally posted by 本是 at 01:48 AM:
我查了UCWIN带的HZK16.GBK,发现它不是按照公式
“(ch1-0x81)*190+(ch2-0x40)-(ch2/128)”来计算的!
那是生成GBK码本的汉字顺序,不是字库中的排列顺序。
GBK字 ...


前面的兼容区似乎是94/96个汉字每区,而不是190,这样排起来还真麻烦
第264楼 download 发表于 2007-03-26 04:22
初级用户 发帖 101 积分 199
Originally posted by qingyangecho at 01:36 PM:



嗯,鼓掌,中国未来的比而盖次


比尔没什么好羡慕的,劳累过多,
近况看起来比实际岁数老太多
还是继续当我的处男实在一些……
第265楼 本是 发表于 2007-03-26 05:22
银牌会员 发帖 790 积分 2,227
Originally posted by download at 2007-3-26 02:27:
你试试用上述代码来读取我生成的那个GBK字库看看成功没?


我已经用字库显示程序浏览过,与GBK.TXT中的顺序
(公式“(ch1-0x81)*190+(ch2-0x40)-(ch2/128)”)是一致的。
但是,每个汉字的字模顺序是可载入VGA文本字模的格式,
即左右各16字节的单字节式,不是普通汉字库的双字节式!!!

所以,这样生成的字库不是通用字库!
建议:调整为单个汉字为双字节格式,整个字库为通用汉字库格式。
第266楼 hnlyzhd 发表于 2007-03-26 06:17
高级用户 发帖 164 积分 544
看来用在BCDW是不是有希望了?

实在是不懂,路过!
第267楼 本是 发表于 2007-03-26 06:29
银牌会员 发帖 790 积分 2,227
Originally posted by 本是 at 2007-3-26 05:22:
建议:调整为...整个字库为通用汉字库格式。


通用HZK16.GBK库
以32字节为单位的记录号计算方法如下
(假设汉字高位在ch1,低位在ch2中):
if ch1>A0h then
if ch2>A0h then '1-94:A1~FE || A1~FE
rec=(ch1-A1h)*94+(ch2-A1h)
else '159-254:A1~FE || 40~A0
rec=94*94+31*94+31*96+(ch1-A1h)*96+(ch2-40h)-(ch2/128)
endif
else
if ch2>A0h then '95-126:81~A0 || A1~FE
rec=94*94+(ch1-81h)*94+(ch2-A1h)
else '127-159:81~A0 || 40~A0
rec=94*94+31*94+(ch1-81h)*96+(ch2-40h)-(ch2/128)
endif
endif

[ Last edited by 本是 on 2007-3-26 at 09:03 AM ]
第268楼 download 发表于 2007-03-26 09:46
初级用户 发帖 101 积分 199
红色部份应该是
ch2\128
第269楼 本是 发表于 2007-03-26 09:49
银牌会员 发帖 790 积分 2,227
U R right.
第270楼 download 发表于 2007-03-26 11:46
初级用户 发帖 101 积分 199
公式不对,有重码。
上一页  115 16 17 18 19 20 2125  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023