За последние 24 часа нас посетили 60294 программиста и 1815 роботов. Сейчас ищут 857 программистов ...

iconv

Тема в разделе "Прочие вопросы по PHP", создана пользователем Ardolix, 11 июл 2007.

  1. Ardolix

    Ardolix Активный пользователь

    С нами с:
    11 июл 2007
    Сообщения:
    4
    Симпатии:
    0
    Как можно преоброзовать в cp1251 из неизвестного типа? За ранее не могу знать в какой кодировке строка.
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Нужно узнать, что за кодирока.
     
  3. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
  4. Ardolix

    Ardolix Активный пользователь

    С нами с:
    11 июл 2007
    Сообщения:
    4
    Симпатии:
    0
    Спасибо. Ншел решение:
    Код (Text):
    1. $data_tmp = imap_mime_header_decode($sites_html);
    2. $charset_tmp = ($data_tmp[0]->charset == 'default') ? 'ASCII' : $data_tmp[0]->charset;
    3. $sites_html = iconv(charset_tmp, "CP1251", $data_tmp[0]->text);
    Но случилось необротимое:
    :(
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Ardolix надо подключить iconv :)
     
  6. Ardolix

    Ardolix Активный пользователь

    С нами с:
    11 июл 2007
    Сообщения:
    4
    Симпатии:
    0
    Это понятно, но дело хостинга. Может кто подскажит как без iconv сделать?
     
  7. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    mb_string_decode попробуйте
     
  8. Ardolix

    Ardolix Активный пользователь

    С нами с:
    11 июл 2007
    Сообщения:
    4
    Симпатии:
    0
    Спасибо.
    Если кому интересно вот как решил проблему:
    Код (Text):
    1.  
    2. if (!$s_html = @file_get_contents("http://$url")) $page_not = 1; else $page_not = 0;
    3.             //Get Content type and charset
    4.            
    5.             $nlines = count( $http_response_header );
    6.             for ( $i = $nlines-1; $i >= 0; $i-- ) {
    7.                 $line = $http_response_header[$i];
    8.                
    9.                 if(preg_match( '@Content-Type:\s+([\w/+]+)(;\s+charset=(\S+))?@i', $line, $matches ))
    10.                     {
    11.                         if ( isset( $matches[3] ) )
    12.                             $charset = $matches[3];
    13.                         else
    14.                             $charset = "CP1251";
    15.  
    16.                         break;
    17.                     }
    18.             }
    19.              
    20.             $sites_html = mb_convert_encoding($sites_html, "CP1251", $charset);
     
  9. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0

    http://www.php.net/manual/ru/function.m ... coding.php