cp936编码包括了gbk。不同于utf8,unicode....
gb编码等于codepage936码表里的unicode编码对应的编码,非unicode编码,而是gb码。
js里 escape(字串);得到%uxxxx,xxxx是这个字串的unicode编码。而非gb码,也非utf8码,不论这个字串的原始码是什么。

汉字                     奴
gb(cp936):       c5ab
utf-8:                     7459
unicode:                5974

cp936码表中,高字节为A1-AA的部分为各种符号,其中有汉字标点,部首,日文部首。
A140-A1FE
        |
AA40-AAFE

http://www.microsoft.com/globaldev/reference/dbcs/936.mspx
看了半天,写下。
php生成全cp936码表的函数

creategb();
/**
*  cp936 created
*/
function creategb()
{
 $gb = '';

 /**
 * head:81-F7   foot:   40-7E
 *                      80-FE
 */
 for ($i=0x81;$i<=0xF7 ;$i++ )
 {
  for ($j=0x40;$j<=0x7E ;$j++ )
  {
   $gb .= chr($i).chr($j);
  }
  $gb .="\n";
  for ($j=0x80;$j<=0xFE ;$j++ )
  {
   $gb .= chr($i).chr($j);
  }
  $gb .="\n";
 }

 /**
 * head:F8-FD   foot:   40-7E
 *                      80-A0
 */
 for ($i=0xF8;$i<=0xFD ;$i++ )
 {
  for ($j=0x40;$j<=0x7E ;$j++ )
  {
   $gb .= chr($i).chr($j);
  }
  $gb .="\n";
  for ($j=0x80;$j<=0xA0 ;$j++ )
  {
   $gb .= chr($i).chr($j);
  }
  $gb .="\n";
 }
 /**
 * head:FE   foot:   40-4F
 */
  $i = 0xFE;
  for ($j=0x40;$j<=0x4F ;$j++ )
  {
   $gb .= chr($i).chr($j);
  }
  $gb .="\n";

 //写入text
 echo $gb;
} // end func

Posted on 2005-09-15 16:08  古代  阅读(4472)  评论(0编辑  收藏  举报