Вместо русских букв выводятся вопросы. О Community Builder.

Discussion in 'Joostina - свежий взгляд на Joomla!' started by velross, Oct 11, 2007.

  1. velross
    Offline

    velross Недавно здесь

    Joined:
    Oct 1, 2007
    Messages:
    23
    Likes Received:
    1
    Gender:
    Male
    Возникла необходимость получить данные из таблицы jos_comprofiler, например
    сведения о стране пользователя. В таблице эти данные нормально отоброжаются и
    сам Community Builder их в анкете пользователя отображает нормально, по-русски,
    а когдая я пытаюсь получить эти данные сам - у меня в результате получаются вопросы.
    Кодировка в базе кириллическая и в браузере тоже.
    Я делаю запрос так:

    Код (PHP):
    1. $sql = 'SELECT `cb_country` FROM `jos_comprofiler` WHERE `user_id`=`$id`';
    2. $result=mysql_db_query("joomla", $sql)
    3.         or die ("Ошибка при выполнении запроса:" .mysql_error());
    4. $r=mysql_result ($result, @$row['cb_country']);
    5. echo $r;


    Подскажите, как правильно получить данные из таблицы БД, чтобы в результате
    был текст на русском.

    Буду очень вам благодарен.
     
  2.  
  3. boston
    Offline

    boston Группа локализации

    Joined:
    Oct 10, 2005
    Messages:
    524
    Likes Received:
    12
    Gender:
    Male
    Ответ: Вместо русских букв выводятся вопросы. О Community Builder.

    velross, у тебя обращение к базе напряму, используй api Joomla, будут русские символы. Примеры можешь внутри файлов посмотреть.
     
  4. velross
    Offline

    velross Недавно здесь

    Joined:
    Oct 1, 2007
    Messages:
    23
    Likes Received:
    1
    Gender:
    Male
    Ответ: Вместо русских букв выводятся вопросы. О Community Builder.

    Вы парни умные, подскажите в каких файлах искать и и на что это api похожа. А то я в этом мало что понимаю. :[
    Если, конечно, не трудно.
     
  5. OlegM
    Offline

    OlegM Russian Joomla! Team Staff Member

    Joined:
    Apr 12, 2007
    Messages:
    4,310
    Likes Received:
    375
    Gender:
    Male
    Ответ: Вместо русских букв выводятся вопросы. О Community Builder.

    velross, на joomla-docs.ru есть раздел Программирование со ссылками на хелпы
     
  6. velross
    Offline

    velross Недавно здесь

    Joined:
    Oct 1, 2007
    Messages:
    23
    Likes Received:
    1
    Gender:
    Male
    Ответ: Вместо русских букв выводятся вопросы. О Community Builder.

    Boston и @OlegM, прошу прощения. Оказывается моя проблема не имеет отношение ни к Joomlе ни к CB, всё дело в MySQL.
    Нашёл в Интернете решение своих проблем.

    Сначало необходимо проверить кодировки:

    Код (PHP):
    1. <?
    2. $sql = "SHOW SESSION VARIABLES LIKE 'character_set_connection'";
    3. $res = mysql_query($sql);
    4. print_r(mysql_result($res, 0, 1));
    5. echo "<hr/>";
    6.  
    7. $sql = "SHOW SESSION VARIABLES LIKE 'collation_connection'";
    8. $res = mysql_query($sql);
    9. print_r(mysql_result($res, 0, 1));
    10. echo "<hr/>";
    11. ?>


    Если они разные, то делаем следующее:
    Код (PHP):
    1. $conn = mysql_connect ("localhost", "root", "")
    2.         or die ("Соединение не установлено!");
    3.    print ("Соединение установлено!<br>");
    4. mysql_db_query("joomla", "SET NAMES cp1251");
    5. mysql_db_query("joomla", "SET collation_connection = 'cp1251_general_ci'");


    В мета-теге страницы также пишем кодировку.
    Проблема решается полностью.

    Ещё раз извеняюсь. Тема закрыта.
     
    Last edited by a moderator: Apr 5, 2014
  7. Offline

    training Недавно здесь

    Joined:
    Dec 14, 2007
    Messages:
    1
    Likes Received:
    0
    Ответ: Вместо русских букв выводятся вопросы. О Community Builder.

    А мне и это не помогло. Как оказалось, новый компонент (PerForms 2.4.0) создал таблицы в "неправильной" кодировке latin1_swedish_ci.

    Для решения проблемы нужно было ручками в базе данных установить кодировку cp1251_general_cs для таблицы и отдельно для каждого текстового поля в таблице компонента.

    PS: Интересно, что на локальном хосте ошибки не было.
     

Share This Page

Loading...