26376 是“月”的 unicode内码值
而你给出的 212 和 194 分别是“月”的gb2312编码的第一字节和第耳字节的内码值

解决方案 »

  1.   

    还是不很明白,我想在php里模拟这个函数。
    那有办法得到这个26376 吗?(在php环境),谢谢。
      

  2.   

    <?php
    list(,$ch) = unpack('n', iconv('gbk', 'ucs-2', '月'));
    echo $ch;
    ?>
      

  3.   

    老大,能不能不用iconv这个函数,这个函数很多服务器不支持.
      

  4.   

    可以!
    你做一张codepage936的对照表就可以了,这是查看的<?php
    header("Content-Type: text/html; charset=gb2312");
    echo "<title>936 代码页</title>";
    $i = $_GET['i'];
    if($i<129)
      $i = 129;
    if($i>254)
      $i = 254;
    if($i != 129) {
      echo "<a href='?i=129'>首页</a>\n";
      echo "<a href='?i=".($i-1)."'>上页</a>\n";
    }
    if($i != 254) {
      echo "<a href='?i=".($i+1)."'>下页</a>\n";
      echo "<a href='?i=254'>尾页</a>\n";
    }
    echo "<table border CELLPADDING='1' CELLSPACING='0'>";
    printf("<tr><th>%2X</th>",$i);
    for($j=0;$j<16;$j++)
      printf("<th>%X</th>",$j);
    echo "</tr>";
    for($j=64;$j<255;$j++) {
      if($j%16 == 0) {
        if($j>64)
          echo "</tr>";
        printf("<tr><th>%X</th>",$j/16);
      }
      if($j==127)
        echo "<td></td>";
      else {
        $v = chr($i).chr($j);
        echo "<td>$v</td>";
      }
    }
    echo "<td></td></tr></table>";
    ?>
    <script>
    obj = document.all.tags("TD");
    for(i=0;i<obj.length;i++)
      if(obj[i].innerHTML != "") {
        ch = obj[i].innerHTML.charCodeAt().toString(16).toUpperCase();
        if(ch >= "E000" && ch < "E810") ch = " ";
        obj[i].innerHTML += "<br>"+ch;
      }
    </script>
      

  5.   

    厉害,收藏了,不过前边改一下会更好。
    这里:$i = $_GET['i'];
    改为:
    if( isset($_GET['i']) ) $i = $_GET['i'];
    else $i=0;