проблема с кодировкой в базе данных

Тема в разделе "Базы данных", создана пользователем zhito, 18 сен 2008.

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

    zhito

    Регистр.:
    23 авг 2007
    Сообщения:
    165
    Симпатии:
    22
    данные в файлах в кодировке вин-1251
    заливаю просто
    PHP:
    mysql_select_db($db);
    $r1=mysql_query ($q1);
    получаю кракозяблы

    делаю так:
    PHP:
    mysql_select_db($db);
    mysql_query("SET NAMES utf8");
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET character_set_connection = utf8");
    mysql_query("SET collation_connection = utf8");
    $r1=mysql_query ($q1);
    в $r1 еденица, но в базе пусто
    подскажите плз :)
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Фигли ты указываешь utf8, если файлы в cp1251?
    Ты уж или БД делай cp1251 или файлы переконверти в utf.
     
    zhito нравится это.
  3. Jameson

    Jameson Читатель

    Заблокирован
    Регистр.:
    25 июн 2007
    Сообщения:
    406
    Симпатии:
    92
    Правильнее будет сделать так:
    PHP:
    mysql_select_db($db); 
    mysql_query ("SET NAMES 'cp1251'"); // говоришь серверу, что сейчас данные будут в win1251
    // и что возвращать результаты тоже было бы некисло в точно такой же
    $r1=mysql_query ($q1);
     
  4. zhito

    zhito

    Регистр.:
    23 авг 2007
    Сообщения:
    165
    Симпатии:
    22
    вот еще такой код нашел для перекодировки файлов из 1251 в ютф8
    PHP:
    $dir="путь к папке";
    $handle=opendir($dir);
    while (
    false !== ($file readdir($handle)))
    {if(
    is_file($dir."/".$file))
    {
    $text=iconv("cp1251""utf-8"file_get_contents($dir."/".$file));
    $f=fopen($dir."/".$file"w");
    fputs($f$text);
    fclose($f);
    }
    }
     
Статус темы:
Закрыта.