За последние 24 часа нас посетили 18637 программистов и 1604 робота. Сейчас ищут 1012 программистов ...

Проблемы с кодировкой

Тема в разделе "PHP для новичков", создана пользователем acidflash2009, 12 мар 2009.

  1. acidflash2009

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

    С нами с:
    12 мар 2009
    Сообщения:
    10
    Симпатии:
    0
    Есть некий сайт с новостями, charset=windows-1251
    С которого скриптом дерутся статьи и вставляются в базу.
    Кодировка базы cp1251_general_ci. Скрипт работает, но в базе русский текст появляется в виде знаков вопроса.
    В чем может быть проблема и как это исправить?

    Код:
    $SOME = file_get_contents("http://www.news.news.ru.ru/blocks/news.phtml?type=all&s=no&n=20") ;
    //echo $SOME;
    preg_match_all('/
    (\d{5,})
    /xm', $SOME, $stat, PREG_SET_ORDER);

    foreach ($stat as $m){

    @$SOME2 = file_get_contents("http://news.news.ru/print.phtml?nid=".$m[1]);
    //echo $SOME2;
    preg_match_all('/
    \<h3\>(.*)\<\/h3\>(?:.*?)\<p\>(.*?)\<\/p\>
    /xs', $SOME2, $stat2, PREG_SET_ORDER);
    foreach ($stat2 as $mm){
    echo "<h2>".$mm[1]."</h2>";
    echo $mm[2];
    $mvr = mysql_query("SELECT Title FROM Message21 WHERE Subdivision_ID = 84 && Sub_Class_ID = 85 && Title = ".$mm[1]."");
    if(mysql_num_rows($mvr)==0) {
    $query = "INSERT INTO `netcat`.`Message21` (
    `Message_ID` ,
    `User_ID` ,
    `Subdivision_ID` ,
    `Sub_Class_ID` ,
    `Priority` ,
    `Checked` ,
    `TimeToDelete` ,
    `TimeToUncheck` ,
    `IP` ,
    `UserAgent` ,
    `Parent_Message_ID` ,
    `Created` ,
    `LastUpdated` ,
    `LastUser_ID` ,
    `LastIP` ,
    `LastUserAgent` ,
    `Keyword` ,
    `Text` ,
    `Announce` ,
    `Title` ,
    `Date` ,
    `ExtLink` ,
    `SourceLink` ,
    `SourceTitle` ,
    `Picture`
    )
    VALUES (
    NULL , '1', '84', '85', '1', '1', NULL , NULL , '10.1.3.220', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7', '0', NOW( ) , NOW( ) , '0', NULL , NULL , '', '".$mm[2]."', '".$mm[2]."', '".$mm[1]."', NOW( ) , NULL , NULL , NULL , NULL
    );";
    echo $query;
    mysql_query($query);
    }

    }
    }
     
  2. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    mysql_query('SET NAMES `cp1251`);
     
  3. acidflash2009

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

    С нами с:
    12 мар 2009
    Сообщения:
    10
    Симпатии:
    0
    спасибо
     
  4. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Лучше все хранить в utf8.
    Проблема с траффиком и местом на жестком диске не стоит сейчас так остро, как во времена 56к модемов.
     
  5. SayDan

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

    С нами с:
    12 мар 2009
    Сообщения:
    4
    Симпатии:
    0
    Адрес:
    Беларусь
    dumper.php - просто и легко меняет любую кодировку.