Не получается решить проблему с ssl, regex, iconv

xInOrK

Новичок
Не получается решить проблему с ssl, regex, iconv

Получаю данные из сертификата в таком виде:
1) CN=\x00J\x00E\x00R\x01`\x00O\x00V\x00A\x00,\x00V\x00E\x00R\x00O\x00N\x00I\x00K\x00A\x00,\x004\x009\x000\x000\x009\x001\x004\x002\x002\x001\x004/SN=\x00J\x00E\x00R\x01`\x00O\x00V\x00A

2) CN=\x00K\x00R\x00\xD5\x00L\x00O\x00V\x00,\x00P\x00A\x00V\x00E\x00L\x00,\x003\x008\x007\x000\x004\x000\x009\x006\x005\x002\x009/SN=\x00K\x00R\x00\xD5\x00L\x00O\x00V

написал сначала небольшой скриптик он наверно ужасный но подругому пока не придумал как сделать.

PHP:
$value=str_replace("\\x00", "", $value);
$value=str_replace("\\x", "0x", $value);
$value=preg_replace_callback('/0x([0-9a-zA-Z]){2}/', create_function('$matches', '$hex=str_replace("0x", "", $matches[0]); return chr(hexdec("$hex"));'), $value);
$value=iconv("ISO-8859-1", "UTF-8", $value);
но и с ним возникла проблема, второй результат он обрабатывает хорошо а первый нет. Может подскажите как сделать это всё проще. Ну или хотябы ткнёте в то что надо почитать.

-~{}~ 25.02.09 22:51:

нашёл такой код:
PHP:
function ucs2utf8($str) {
  $str=preg_replace("/\\\\x([0-9ABCDEF]{1,2})/e", "chr(hexdec('\\1'))", $str);

  $result=null;
  $encoding=mb_detect_encoding($str, "ASCII, UCS2, UTF8");
  if ($encoding == "ASCII") {
    $result=mb_convert_encoding($str, "UTF-8", "ASCII");
  } else {
    if (substr_count($str,chr(0)) > 0) {
      $result=mb_convert_encoding($str, "UTF-8", "UCS2");
    } else {
      $result=$str;
    }
  }
  return $result;
}
который решил проблему
 
Сверху