关于取模数据定位的说明:
以GBK为例
GBK 对 GB2312 进行了扩展。第一字节为 0x81~0xFE,第二字
节分两部分,一是 0x40~0x7E,二是 0x80~0xFE。
即(0x7f-0x40+0xff-0x80)=一个区190个字。
定位方法如下:
第一个字节减去 0x81,则是正确的区位,每个区的大小要根据每个字所占用的字节×190
(0x7f-0x40+0xff-0x80)即可。如果第二个字节小于 0x7f 则减去 0x40,
如果第二个字节大于等于 0x80 则减去 0x41。
定位的高位=(区码高位-0x81)*0xBE
定位的低位= 如果 区码低位<0x7F ,区码低位-0x40
如果 区码低位>=0x80 ,区码低位-0x41
比如D2BB 一
定位的高位=D2-81 =0x51
定位的低位=BB-41 =0x7A
0x51*0xBE+0x7A=0x3C98=15512
即
定位1对应区码0x8140 丂
定位2对应区码0x8141 丄
定位190对应区码0x8240 侤
定位15512对应区码0xD2BB 一