"\xe4\xb8\xad\xe5\x9b\xbd" 请问这是什么编码  要怎么转换成汉字呢   之前群里有个朋友说直接echo 就可以了  我把这个字符串直接放在一个字符串里面 然后echo是可以输出对应的中文 但是如果从一个input框里获取输入的这个字符串然后再用echo输出缺是输出了这个原本的字符串   没有输出汉字  反斜线转义我也检查了  没有双重转义的问题   请问要怎么才能转换成中文 谢谢大家编码PHP

解决方案 »

  1.   

    $s = '\xe4\xb8\xad\xe5\x9b\xbd';//方法1
    $f = create_function('', "return \"$s\";") ;
    echo $f();//方法1
    echo pack('H*', str_replace('\x', '', $s));
      

  2.   

    判断一下编码吧:echo mb_detect_encoding($str);http://php.net/manual/en/function.mb-detect-encoding.php
      

  3.   

    $str = "\xe4\xb8\xad\xe5\x9b\xbd";//判断编码,并输出Http Header
    header('Content-Type: text/html; charset='.mb_detect_encoding($str));echo $str
      

  4.   


    下面的那个方法报错了哦
    Warning: pack() [<a href='function.pack'>function.pack</a>]: Type H: illegal hex digit � in C:\wamp\www\ios\test.php on line 84
      

  5.   

    Type H: illegal hex digit
    非法十六进制数字当然你需要自行保证数据的合法性!
      

  6.   

    如果我这个字符串中包含英文或者特殊字符的时候是不是就会转换不成功//"中国"
    "\xe4\xb8\xad\xe5\x9b\xbd"  我用上面的那个字符串要转换回来 但还是会报错  
      

  7.   


     谢谢版主的热心解答,同时也感谢Drazzi! 
      

  8.   

    当你的字串混合了英文
    例如
    \xe4\xb8\xadA\xe5\x9b\xbd     //中A国
    这种情况,用老徐的方法pack去掉\x会出现 adA ,这就不符合16进制了,所以前面要增加对字串预处理的步骤,做起来就不如方法一方便了