dongyan5641 2013-04-18 18:08
浏览 72
已采纳

如何解码十六进制内容?

I have $_SERVER['REDIRECT_SSL_CLIENT_S_DN'] content that has somekind of hex data. How can i decode it?

$_SERVER['REDIRECT_SSL_CLIENT_S_DN'] = '../CN=\x00M\x00\xC4\x00,\x00I\x00S\x00,\x004\x000\x003\x001\x002\x000\x000\x002/SN=..';
$pattern = '/CN=(.*)\\/SN=/';
preg_match($pattern, $_SERVER['REDIRECT_SSL_CLIENT_S_DN'], $server_matches);
print_r($server_matches[1]);

The result is:

\x00M\x00\xC4\x00,\x00I\x00S\x00,\x004\x000\x003\x001\x002\x000\x000\x002

The result i need is:

MÄ,IS,40312002

I tried to decode it with chr(hexdec($value)); and it almost works, but in html input i see lot of question marks.

EDIT: Additional test with results. Not yet perfect. Array reveals some errors: http://pastebin.com/BC4xxqmE

  • 写回答

3条回答 默认 最新

  • dswwuo1223 2013-04-19 13:56
    关注

    After using utf8_encode, you now have a multibyte string. This means you need to use PHP's multibyte (mb_) functions.

    So, str_split won't work anymore. You need to use either mb_split or preg_split with the u flag.

    $splitted = preg_split('//u', $string);
    

    Here's a demo showing that your code is now working: http://ideone.com/nqeC0U

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探