curl и кодировка страниц

Тема в разделе "PHP", создана пользователем L_D, 12 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. L_D

    L_D Создатель

    Регистр.:
    20 авг 2007
    Сообщения:
    37
    Симпатии:
    3
    Здравствуйте.
    Тягаю с помощью curl определенную инфу по базе определенной CMS. Примерно так:

    PHP:
    $ch curl_init(); 
    curl_setopt($chCURLOPT_URL$url); 
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_USERAGENT$useragent);
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_COOKIEFILE$cookie_file); 
    curl_setopt($chCURLOPT_POSTFIELDS$post); 
    $result1 curl_exec($ch); 
    curl_close($ch);   
    Всё бы хорошо, но мой скрипт в кодировке cp1251, и с сайтами аналогичной кодировке работает отлично, но повстречав utf8 - выдаёт каракули, и напроч отказывается отправлять корректные post данные...
    Подскажите пожалуйста, как заставить парсер верно определять и подстраиватся под кодировку сайта.
     
  2. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    http://www.php.ru/manual/function.iconv.html
     
    Construktor нравится это.
  3. L_D

    L_D Создатель

    Регистр.:
    20 авг 2007
    Сообщения:
    37
    Симпатии:
    3
    Пробовал, канечно же( Результат - либо вообще никакого, либо возвращает пустую строку... Пытаюсь конвертить всю страницу полностью, возможно, чтото упускаю?
     
  4. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Ну тут вот есть определение кодировки

    http://boliev.com/archives/626

    Т.е. кодировка берется либо из meta, либо из http. Пример сразу прикручен к curl.

    А кодировку пишешь как Windows-1251 или как иначе?
    И поставь вывод ошибок error_reporting(E_ALL) может дельный совет тебе покажет.
     
    L_D нравится это.
  5. L_D

    L_D Создатель

    Регистр.:
    20 авг 2007
    Сообщения:
    37
    Симпатии:
    3
    Всё решилось с помощью параметра //IGNORE в iconv.
    PHP:
    $result iconv("UTF-8","windows-1251//IGNORE"$result);
    Функция ругалась на недопустимые символы, именно поэтому выдавался пустой результат.

    antidote, спасибо за мотивацию продолжить копать в сторону iconv)
     
    sergtat и DreifGenov нравится это.
Статус темы:
Закрыта.