中文国标编码

中文编码是两个字节表示一个汉字。先请看下面 的对照表:

  | 0  1  2  3  4  5  6  7  8  9
--|------------------------------
 0|    !  "  #  $  %  &  '  (  )
 1| *  +  ,  -  .  /  0  1  2  3
 2| 4  5  6  7  8  9  :  ;  <  =
 3| >  ?  @  A  B  C  D  E  F  G
 4| H  I  J  K  L  M  N  O  P  Q
 5| R  S  T  U  V  W  X  Y  Z  [
 6| \  ]  ^  _  `  a  b  c  d  e
 7| f  g  h  i  j  k  l  m  n  o
 8| p  q  r  s  t  u  v  w  x  y
 9| z  {  |  }  ~

这里有94个英文符号, 都是可打印的ASCII字符。 请注意字符与数字的对应关系, 如1是'!', 33 是'A', 58是'Z', 90是'z', 等等。数字就是区 位码, 字符就是汉字码。上表中字符的次序是与 ASCII码相同的, 其数字相当于ASCII码减去32 (学过C语言的, 应知道我在说什么:-))。

每个中文的编码是由两个字节组成的, 对汉字码 来说, 即由上表中的两个字符所组成。第一个字 符的数字叫“区”, 第二个字符的数字叫“位”, 这两个数字合起来叫该汉字的区位码。例如: “鸦”这个字的汉字码是'Q;', 'Q'的数字是49, ';'的数字是27, 因此该字的区位码4927。注意: 区位码都是四位数, 头两位数是“区”, 后两位 数是“位”, 不足的要补零。例如: “。”的汉 字码是'!#', 其区位码就是0103。

中文国标字库是按区排放的。第1区是标点符号; 第2区是各种数字; 第3区是英文字符, 与上表差 不多(这就是为什么大部分英文字符的汉字码可用 '#'加相应的英文字符来表示, 因为第3区的汉字 码便是'#'); 第4区是日文平假名; 第5区是日文 片假名; 第6区是希腊字母; 第7区是饿文字母; 第8区是新旧汉语拼音; 第9区是制表符号。第10 至15区没有东西。第16至87区是真正的汉字, 其 中第16至55区是按拼音排放的, 第56至至87区是 按偏旁部首排放的。每一区中的汉字的区位码的 第一个数字是相同的, 即它的区号; 其汉字码的 第一个字符也是相同的, 即它的区号按上表所对 应的字符。(真是罗嗦, 就此打住!)

这样您可以写一段小程序将国标中的所有东西都 弄出来, 给出对应的区位码或汉字码。(我手头 就有这样一份东西, 以便随时使用) 比如要看 第56区的全部汉字, 只要将'X'(对应数字56)与 上表中的字符一一配对(中间不留空格), 每行头 上加上'~{', 就成了汉字码文件, 您就可以用中 文显示软件看它了。(对汉字码文件, 空格要用 '!!'表示, 否则就坏了。)

至于国标码, 只需要将上述汉字码的每个字符的 第8bit置1(或将字符的ASCII码加上128, 又是C 语言:-()就行了。对国标码, 不需要'~{', 空格 随便用。