ft,你们怎么说起这个来了。
2109每位数减去1,0-1的话是变成9,所以会是1091。
o,sorry,说错了:)

解决方案 »

  1.   

    哇,非常sorry了,应该是2109=》1098。:)
      

  2.   

    <?php
    // 被改变的区位码,按位加一不进位
    $s = "2712.2713.2714.2715.2716";
    // 恢复原样
    $t = "";
    for($i=0;$i<strlen($s);$i++) {
      $ch = $s[$i];
      if($ch != ".") {
        if($ch == "0")
          $ch = "9";
        else
          $ch -= 1;
      }
      $t .= $ch;
    }
    // 分解成数组
    $ar = explode(".",$t);
    // 转换区位码为汉字内码
    for($i=0;$i<count($ar);$i++) {
      $ch1 = substr($ar[$i],0,2)+160;
      $ch2 = substr($ar[$i],2)+160;
      $ar[$i] = pack("S",$ch1+$ch2*256);
    }
    // 连接文字并输出
    echo join("",$ar);
    ?>