Google и utf-8

Тема в разделе "PHP", создана пользователем dump1111, 5 авг 2010.

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

    dump1111

    Регистр.:
    7 июл 2009
    Сообщения:
    266
    Симпатии:
    8
    Вот код, который запрашивает у гугла выдачу:
    Код:
    <?php
    $word='Привет ';
    $url='http://www.google.ru/search?client=opera&rls=ru&rls=ru&q='.urlencode(iconv("windows-1251","utf-8",$word)).'&sourceid=opera&ie=utf-8&oe=utf-8';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_HEADER ,1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEJAR,realpath(".").'/cookies.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE,realpath(".").'/cookies.txt');
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1) Gecko/20061010 Firefox/2.0;MEGAUPLOAD 1.0");
    curl_setopt($ch, CURLOPT_URL,$url);
    $result=curl_exec ($ch);
    curl_close($ch);
    echo $result;
    ?>
    
    При этом в браузер он выводит страницу в неправильной кодировке.
    Какие-то крокозябры, хотя гугл отсылает в http-загловке charset=UTF-8
    но браузер почему-то сразу переключает на ISO-8859-5. А почему так происходит?
    И ещё: функция strppos не находит в полученном результате ничего. Как сделать так, чтобы она работала?
     
  2. zaregan

    zaregan Постоялец

    Регистр.:
    12 авг 2009
    Сообщения:
    70
    Симпатии:
    41
    В самом начале файла поставь

    header("Content-Type: text/html; charset=UTF-8");
     
  3. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Или можно переконвертировать входящих данных в необходимую вам кодировку, допустим из UTF-8 в WINDOWS-1251:

    Код:
    <?php
    $word='Привет ';
    $url='http://www.google.ru/search?client=opera&rls=ru&rls=ru&q='.urlencode(iconv("windows-1251","utf-8",$word)).'&sourceid=opera&ie=utf-8&oe=utf-8';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_HEADER ,1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEJAR,realpath(".").'/cookies.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE,realpath(".").'/cookies.txt');
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1) Gecko/20061010 Firefox/2.0;MEGAUPLOAD 1.0");
    curl_setopt($ch, CURLOPT_URL,$url);
    $result=curl_exec ($ch);
    curl_close($ch);
    
    [B]$result = iconv('UTF-8', 'WINDOWS-1251', $result);[/B]
    
    echo $result;
    ?>
    
     
Статус темы:
Закрыта.