Помогите с кодировкой майсикюл, вместо букв ???? знаки

Тема в разделе "Базы данных", создана пользователем TAKOY, 17 май 2009.

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

    TAKOY Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    76
    Симпатии:
    5
    ребята подскажите плиз, я уже создавал тему здесь http://www.nulled.ws/showthread.php?t=123079, делал как мне советовали но не помогло.
    после этого написал в суппорт хостинга, мне дали такой ответ

    Решение

    1. Нужно изменить немного скрипт подключения к БД.

    Пример, как можно было подключиться раньше:
    $db = @mysql_connect("$dbhost","$dbuser","$dbpass");
    @mysql_select_db($dbname,$db);

    Пример, как нужно в MySQL 4.1 и выше:
    $db = @mysql_connect("$dbhost","$dbuser","$dbpass");
    @mysql_select_db($dbname,$db);
    @mysql_query('SET NAMES cp1251;');


    2. При залитии дампа со старого мускула в MySQL 4.1 и выше во все запросы с "CREATE TABLE" нужно вконце перед точкой с запятой добавить:
    TYPE=MyISAM DEFAULT CHARACTER SET cp1251

    Пример: вы находите в скрипте строку с mysql_connect и заней добавляете 2 строки
    @mysql_query("set character_set_connection=cp1251");
    @mysql_query("set names cp1251");

    mysql_connect($GLOBALS['dbhost'], $GLOBALS['dbuser'], $GLOBALS['dbpasswd']) or die($this -> Error("Can't connect to mysql"));
    @mysql_query("set character_set_connection=cp1251");
    @mysql_query("set names cp1251");
    mysql_select_db($GLOBALS['dbname']);

    но проблема в том что я не спец в базах майсикюл и не понял что и где нужно прописать, если кому не трудно, то опишите где прописывать те строчки.
    типа так--- установил жумлу, открыл такойто файл, нашел то, прописал это......
    заранее спасибо!!!
     
  2. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    попробуй в файле
    includes/database.php расскоментировать строку (у меня 114 строка)

    PHP:
    //@mysql_query("SET NAMES 'cp1251'", $this->_resource);
    т.е. у тебя получится
    PHP:
    @mysql_query("SET NAMES 'cp1251'"$this->_resource);
     
  3. kevmen

    kevmen Писатель

    Регистр.:
    14 май 2009
    Сообщения:
    4
    Симпатии:
    0
    Была такая проблема на вордпрессе,нужно сравнение каждой строки вручную поменять,мне помогло
     
  4. TAKOY

    TAKOY Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    76
    Симпатии:
    5
    tostrss спасибо тебе за ответ, я поменял в файле датабейс.пхп ту строчку ( она у меня была не 114 а 106 ), но без изменений.
    блин, уже надоело копаться и мне проще былобы сделать самописный сайт, простенький но без проблем, но блин уже хочу решить принципиально эту проблему.
    написал еще хостеру чтоб понятнее расписали где что менять, жду ответа.
    ребят может кто еще подскажит а?
    спасибо.
     
  5. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    А в самой базе все ок? И в какой кодировке таблицы?
     
  6. TAKOY

    TAKOY Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    76
    Симпатии:
    5
    a_n_d_y а как проверить базу, все там ок или нет?
    я как обычно просто создал базу на хосте через мастера баз майсикюл и написал название базы и пользователя и пароль в данные когда устанавливал жумлу.
     
  7. diabl

    diabl Боцман

    Регистр.:
    24 мар 2009
    Сообщения:
    439
    Симпатии:
    156
    В .htaccess нужно прописать AddDefaultCharset windows-1251
     
  8. TAKOY

    TAKOY Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    76
    Симпатии:
    5
    diabl в файле хлацес так и прописано, вот

    # Установка кодировки сайта по умолчанию. При необходимости, закомментируйте.

    AddDefaultCharset WINDOWS-1251

    # Следующие строки - попытка исправить настройки PHP
    # для полного соответствия системным требованиям Joomla.
    # Раскомментируйте (символ комментария - #) нужные строки,
    # если настройки вашего хоста не соответствуют рекомендациям
    # системных требований Joomla.
    # При возникновении 500 ошибки сервера, закомментируйте строку, вызывающую
    # ошибку, или все строки с php_value.
     
  9. rob1n

    rob1n

    Регистр.:
    10 июл 2007
    Сообщения:
    258
    Симпатии:
    146
    вот как у меня реализовано подключение когда то был баг с кодировкой но все решилось таким кодом.
    Код:
    $dbconnect=mysql_connect($dblocation,$dbuser,$dbpass);
    if (!$dbconnect)
    {
    echo("Не могу подключиться к БД.");
    die;
    }
    $dbselect=mysql_select_db($dbname,$dbconnect);
    if (!$dbselect)
    {
    echo("Не могу найти БД");
    die;
    }
    mysql_query("SET character_set_client = cp1251");
    mysql_query("SET character_set_connection = cp1251");
    mysql_query("SET character_set_results = cp1251");
    extract($_GET,EXTR_OVERWRITE);
    extract($_POST,EXTR_OVERWRITE);
    extract($_COOKIE,EXTR_OVERWRITE); 
    ?>
     
  10. TAKOY

    TAKOY Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    76
    Симпатии:
    5
    rob1n скажи куда этот код нужно прописать, в какой файл?
    и еще в этой строке $dbconnect=mysql_connect($dblocation,$dbuser,$dbpass);

    dbuser -- это оставить так, или прописать имя базы?
    dbpass - а здесь код к базе или как?
    и еще, если там нужно прописывать, то db оставлять и за ним прописывать код или просто пароль без db?
    заранее спасибо!!!
     
Статус темы:
Закрыта.