汉字机内码、国标码和区位码三者之间的关系为:区位码(十进制)的两个字节分别转换为十六进制后加20H得到对应的国标码;机内码是汉字交换码(国标码)两个字节的最高位分别加1,即汉字交换码(国标码)的两个字节分别加80H得到对应的机内码;区位码(十进制)的两个字节分别转换为十拿则六进制后加A0H得到对应的机内码。
(1)区位码先消瞎棚转换成十六进制数表示
(2)(区位码的十六进制表示)+2020H=国标码;
(3)国标码+8080H=机内码
>>> s=u'机'
>>> s[:]
u'\u673a'
>>> s.encode('gbk')
'\xbb\xfa'
>>> hex(0xbbfa-0xa0a0) #这里0xa0a0=0x2020+0x8080
'0x1b5a'
这时候要手工计算了,0x1b=27 0x5a=90 所以区位码是2790. 千万不要0x1b5a=7002
code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
BBA0 弧 虎 唬 护 互 沪 户 花 哗 华 猾 滑 画 划 化
BBB0 话 槐 徊 怀 淮 坏 欢 环 桓 还 缓 换 患 唤 痪 豢
BBC0 焕 涣 宦 幻 荒 慌 黄 磺 蝗 簧 皇 凰 惶 煌 晃 幌
BBD0 恍 谎 灰 挥 辉 徽 恢 蛔 回 毁 悔 慧神配 卉 惠 晦 贿
BBE0 秽 会 烩 汇 讳 诲 绘 荤 昏 婚 魂 浑 混 豁 活 伙
BBF0 火 获 或 惑 霍 货 祸 击 圾 基 机 畸 稽 积 箕
此问题网上已有樱丛解禅凳答,今拷贝于下:
国标码高位字节=区位码区号(27)(十进制)+20H(十六进制)=1BH+20H=3BH
国标码低位字节=区位贺颂旅码位号(90)(十进制)+20H(十六进制)=5AH+20H=7AH
国标码为3B7A(十六进制)
追问:27怎么到的1BH
回答:27=16+11=10H+BH=1BH
的