我知道用java怎么实现。例子如
public class cs {
  public  static void main(String args[]){
  
  //JAVA字符串转换为十六进制的数 输出的结果:4e2d56fd4eba   StringBuffer sb = new StringBuffer();
  String fileName="中国人";
 for (int i = 0; i < fileName.length(); i++) {
 
 String temp = Integer.toHexString(fileName.charAt(i));
 sb.append(temp);
 
}
 System.out.println("输出的结果:"+sb.toString());
  }
}求助用php怎么实现上面的效果呢。
谢谢大侠求助

解决方案 »

  1.   


    function hex2bin($hexdata) {
        $bindata = '';
        for($i=0; $i < strlen($hexdata); $i += 2) {
            $bindata .= chr(hexdec(substr($hexdata, $i, 2)));
        }
        return $bindata;
    }
    print hex2bin('ced2cac7d6d0b9fac8cb');
    print "\n---------------------\n";
    print bin2hex('我是中国人');
    print "\n---------------------\n";
      

  2.   

    $s = "中国人";
    $p = unpack('H*s', iconv('gbk', 'UCS-2', $s));
    echo $p['s']; //4e2d56fd4eba
      

  3.   

    public class cs { 
      public  static void main(String args[]){ 
      
      //JAVA字符串转换为十六进制的数 输出的结果:4e2d56fd4eba   StringBuffer sb = new StringBuffer(); 
      String fileName="中国人"; 
    for (int i = 0; i < fileName.length(); i++) { String temp = Integer.toHexString(fileName.charAt(i)); 
    sb.append(temp); } 
    System.out.println("输出的结果:"+sb.toString()); 
      } 

    结果都不对
    正确的输出值是:4e2d56fd4eba 
      

  4.   

    学习了
    唠叼老大什么时间给我等讲讲pack和unpack的用法啊!!这个资料太少了
      

  5.   


    /*方法说明*/
    static String toHexString(int i) 
              以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。 
    char charAt(int index) 
              返回指定索引处的 char 值。 
      

  6.   

    pack编码的,还要解码你的java的估计了也要解码
      

  7.   

     那我具体怎么修改php代码。我对php不是很熟悉。希望帮忙改一下。我现在也在学习呢
      

  8.   

    唠叨那个没错,你原始数据是什么编码?
    iconv("原始数据编码","UCS-2","原始数据");
    你就是要获取"中国人"3个字的unicode(16进制)码.
      

  9.   

    对得到结果了$s = "中国人"; 
    $p = unpack('H*s', iconv('gbk', 'UCS-2', $s)); 
    echo $p['s']; //4e2d56fd4eba 
    我重新建立了一个工程。得到的结果是对的
    我以前那个工程的页面是utf_8的。所以得到的结果是6d93