|
download
初级用户
积分 199
发帖 101
注册 2007-3-13
状态 离线
|
|
2007-3-25 09:00 |
|
|
download
初级用户
积分 199
发帖 101
注册 2007-3-13
状态 离线
|
|
2007-3-25 12:07 |
|
|
本是
银牌会员
积分 2201
发帖 789
注册 2005-1-27
状态 离线
|
『第
258 楼』:
我查了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
—————————————————————————————
我观察下来好像就是这个顺序。不过,你再核对一下,确认无误后才能开始调整你的程序。
我困了,要睡了~~~
|
my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2007-3-25 14:48 |
|
|
jb88
新手上路
积分 18
发帖 8
注册 2006-11-12
状态 离线
|
|
2007-3-25 22:49 |
|
|
download
初级用户
积分 199
发帖 101
注册 2007-3-13
状态 离线
|
『第
260 楼』:
Quote: | Originally posted by 本是 at 01:48 AM:
我查了UCWIN带的HZK16.GBK,发现它不是按照公式
那是生成GBK码本的汉字顺序,不是字库中的排列顺序。
GBK字 ... |
|
头大,懒得去研究了,搞这么麻烦到时读取也麻烦!干脆就用
“(ch1-0x81)*190+(ch2-0x40)-(ch2/128)”来定位算了,
给字库起个新名字:GBK顺序字库,以前的则为兼容字库。
|
|
2007-3-26 02:17 |
|
|
download
初级用户
积分 199
发帖 101
注册 2007-3-13
状态 离线
|
『第
261 楼』:
你试试用上述代码来读取我生成的那个GBK字库看看成功没?
|
|
2007-3-26 02:27 |
|
|
qingyangecho
初级用户
积分 97
发帖 40
注册 2006-11-1
状态 离线
|
『第
262 楼』:
Quote: | Originally posted by download at 2007-3-25 12:52 AM:
不开源,捆绑N个流氓插件,再加收注册费每台机50元 ^_^ |
|
嗯,鼓掌,中国未来的比而盖次
|
|
2007-3-26 02:36 |
|
|
download
初级用户
积分 199
发帖 101
注册 2007-3-13
状态 离线
|
『第
263 楼』:
Quote: | Originally posted by 本是 at 01:48 AM:
我查了UCWIN带的HZK16.GBK,发现它不是按照公式
“(ch1-0x81)*190+(ch2-0x40)-(ch2/128)”来计算的!
那是生成GBK码本的汉字顺序,不是字库中的排列顺序。
GBK字 ... |
|
前面的兼容区似乎是94/96个汉字每区,而不是190,这样排起来还真麻烦
|
|
2007-3-26 04:20 |
|
|
download
初级用户
积分 199
发帖 101
注册 2007-3-13
状态 离线
|
『第
264 楼』:
Quote: | Originally posted by qingyangecho at 01:36 PM:
嗯,鼓掌,中国未来的比而盖次 |
|
比尔没什么好羡慕的,劳累过多,
近况看起来比实际岁数老太多
还是继续当我的处男实在一些……
|
|
2007-3-26 04:22 |
|
|
本是
银牌会员
积分 2201
发帖 789
注册 2005-1-27
状态 离线
|
『第
265 楼』:
Quote: | Originally posted by download at 2007-3-26 02:27:
你试试用上述代码来读取我生成的那个GBK字库看看成功没? |
|
我已经用字库显示程序浏览过,与GBK.TXT中的顺序
(公式“(ch1-0x81)*190+(ch2-0x40)-(ch2/128)”)是一致的。
但是,每个汉字的字模顺序是可载入VGA文本字模的格式,
即左右各16字节的单字节式,不是普通汉字库的双字节式!!!
所以,这样生成的字库不是通用字库!
建议:调整为单个汉字为双字节格式,整个字库为通用汉字库格式。
|
my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2007-3-26 05:22 |
|
|
hnlyzhd
高级用户
积分 544
发帖 164
注册 2004-10-17
状态 离线
|
|
2007-3-26 06:17 |
|
|
本是
银牌会员
积分 2201
发帖 789
注册 2005-1-27
状态 离线
|
『第
267 楼』:
Quote: | 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 ]
|
my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2007-3-26 06:29 |
|
|
download
初级用户
积分 199
发帖 101
注册 2007-3-13
状态 离线
|
『第
268 楼』:
红色部份应该是
ch2\128
|
|
2007-3-26 09:46 |
|
|
本是
银牌会员
积分 2201
发帖 789
注册 2005-1-27
状态 离线
|
『第
269 楼』:
U R right.
|
my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2007-3-26 09:49 |
|
|
download
初级用户
积分 199
发帖 101
注册 2007-3-13
状态 离线
|
|
2007-3-26 11:46 |
|