带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(3) https://developer.aliyun.com/article/1240902?groupCode=tech_library
9.2.3机内码
GB2312国标码规范是覆盖掉ASCII中可见部分的符号和英文字母,使用两个7位码将其中的英文字母和符号重新编入。
但是这样产生一个弊端:早期用ASCII码编码的英文文章无法打开,一打开就是乱码,也就是说应该要兼容早期ASCII码而不是覆盖它。
后来微软为了解决这个问题:将字节的最高位设为1,因为ASCII中使用7位,最高位为0,转换后的编码称为机内码(内码),这种方式本质上是修改了GB2312的编码标准,最后被大家接受沿用。
总结下三者转换关系:区位码 ---> 区码和位码分别 + 32(即 + 20H )得到国标码 ---> 再分别 + 128(即 + 80H)得到机内码(与 ACSII 码不再冲突)。
带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(5) https://developer.aliyun.com/article/1240898?groupCode=tech_library