Windows中区位码转换为机内码

步骤的简化

  • 区位码的区和位分别加上32得到国标码, 再分别加上128得到机内码

  • 区位码的区和位分别加上160得到机内码

  • 区位码加上A0A0H = 机内码

示例: 我

我的区位码是4650

区位码 4650 = 46 50 = 2E 32H

国标码 2E32H + 2020H = 4E52H

机内码 4E52H + 8080H = 20050H + 32896H = 52946

说明

  • H表示十六进制

  • 在windows中可以按下alt+机内码输入字符

  • 2020H = 32 32: 由于GB2312对ASCII的32个控制字符进行保留, 所以将汉字编码向后偏移32位

  • 8080H = 128 128: 为了兼容ASCII, 所以将最高位设为1, 也就是+ 100000000 = + 80

  • 区位码: 根据GB2312-80标准, 国内所有的汉字或符号都有一个唯一的4位16进制的国标码和4位10进制的区位码; 其中前两位叫做区码, 后两位叫做位码

  • 国标码: GB1312的规范编码

  • 机内码: 微软为了解决GB2312和ASCII兼容问题, 将最高位设为1而产生的编码

原文地址:https://www.cnblogs.com/vmask/p/8779526.html