急:如何获得汉字的内码?

qmingdeng 2003-02-13 11:36:17
急:如何获得汉字的内码?
...全文
119 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
netbir 2003-02-13
  • 打赏
  • 举报
回复
那么如何才能将ord(s[1]),ord(s[2])得到的内码转换成汉字呢?
这里面有个发送和接收问题。
outer2000 2003-02-13
  • 打赏
  • 举报
回复
来自:超级猛料
outer2000 2003-02-13
  • 打赏
  • 举报
回复
内码: Ord(strHZ[1])*$100 + Ord(strHZ[2])

输入一个汉字得到是它的内码,由两个字节组成,两个字节分别减去A0H(160),得到的前一个字节是区,后一个字节是位,算该字在16点阵字库中的位置时,((区-DD)*98+位)*32,32指每个16点阵汉字32字节.注意:有些字库前16区省略一些无用的区故要减去DD.公式给的不一定完全正确,
汉字2312的字库
是87区,每区94个汉字,1-9区是标点,制表符号,日文X假名等,10-15空,16-55是汉字
一级字库(常用),5590-5594空.56区到87区是二级字库.共6763个中文.
16*16点阵字库就是32字节一个字.但不同的16*16点阵字库的
排列方法不一定一样,如UCDOS和CCDOS,有的还把10-15区空的压缩了.
机内码就是你在DELPHI中获得的输入的汉字字符.比如:"啊"的16进制表示.
区码 := (机内码高8位-$A0);
位码 := (机内码低8位-$A0);
偏移量 := ((区码-1)*94+(位码-1))*32
注意区码和位码是以1为开始的.
蝈蝈太阳 2003-02-13
  • 打赏
  • 举报
回复
UP
netbir 2003-02-13
  • 打赏
  • 举报
回复
那么如何才能将ord(s[1]),ord(s[2])得到的内码转换成汉字呢?
这里面有个发送和接收问题。
qmingdeng 2003-02-13
  • 打赏
  • 举报
回复
thanks
netwolfds 2003-02-13
  • 打赏
  • 举报
回复
s:=‘汉’
ord(s[1]),ord(s[2])应该就是
netbir 2003-02-13
  • 打赏
  • 举报
回复
thanks to ehom:
s:=‘汉’
ord(s[1]),ord(s[2]) 变成两个机内码
Chr(Ord(s[1]))+Chr(Ord(s[2])) 加在一块又变成原来的汉字.
是这样吧!
ehom 2003-02-13
  • 打赏
  • 举报
回复
To netbir(网鸟) :
Chr(Ord(s[1]))+Chr(Ord(s[2]))
anh 2003-02-13
  • 打赏
  • 举报
回复
上面的各位说的对,就是用ord()来处理的。至于你的到区位后,就可以从字库中读出它的点阵数据,
蝈蝈太阳 2003-02-13
  • 打赏
  • 举报
回复
UP
ahpei 2003-02-13
  • 打赏
  • 举报
回复
mark.
kaolaxiong 2003-02-13
  • 打赏
  • 举报
回复
up

5,390

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧