Главная страница / Советы / Избавляемся от знаков "????" после установки скрипта
декабрь 12 2006

Избавляемся от знаков "????" после установки скрипта

celsoft 12 декабря 2006 Советы 57 179
Продолжаем публикацию серии полезных советов по работе с движком. На этот раз опишем наиболее популярный вопрос: "А почему у меня ??? вместо текста новостей".

И так вы установили скрипт и с удивлением обнаружили что у вас ??? вместо русского текста, то конечно впервую очередь идут гневные вопросы авторам скрипта. Хотя я бы на вашем месте впервую очередь задал бы этот вопрос вашему хостеру. Мне тоже например интересно почему у хостеров в России локаль по умолчанию в MySQL сервере настроена на latin1. Что все клиенты у них говорят на английском? Я еще могу понять когда стоит UTF-8, но когда у российского хостера стоит latin1_swedish_ci. Это просто убивает, это говорит только о полной некомпетенции хостера по настройке MySQL сервера или о его лени. Итак хватит вступления, пора приступить к практике как от этого избавится, неожидая неповоротливости хостера:

Во первых решить этот вопрос можно по разному, все зависит от того каковы настройки вашего сервера поэтому я напишу вам по пунктам, и вы просто выполняйте их по порядку, каждый из этих пунктов может решить проблему, поэтому проверяйте работоспособность после каждого пункта.

1. Скрипт после установки пытается установить для таблиц нужную локаль, но помимо этого еще существует и сопоставление соединения с MySQL. Поэтому вам необходимо зайти в MyPHPAdmin и установить сопоставление соединения с MySQL на cp1251_general_ci. Не переживайте это доступно не всем, поэтому если вы не найдете нужного пункта, то просто читайте дальше.

2. Посмотрите в MyPHPAdmin какое сопоставление стоит в ваших таблицах. Должно быть также cp1251_general_ci. Если там стоит другое значение, то выполните следующий запрос:

ALTER DATABASE `база` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci

Вместо "база" незабудьте написать имя вашей базы данных, в которую установлен скрипт.

3. И последний пункт если вам не помогли первые два, то откройте файл engine/inc/mysql.php и найдите
    function connect($db_user, $db_pass, $db_name, $db_location = 'localhost', $show_error=1)
    {
        if(!$this->db_id = @mysql_connect($db_location, $db_user, $db_pass)) {
            if($show_error == 1) {
                $this->display_error(mysql_error(), mysql_errno());
            } else {
                return false;
            }
        } 

        if(!@mysql_select_db($db_name, $this->db_id)) {
            if($show_error == 1) {
                $this->display_error(mysql_error(), mysql_errno());
            } else {
                return false;
            }
        }

        return true;
    }

замените его на:
    function connect($db_user, $db_pass, $db_name, $db_location = 'localhost', $show_error=1)
    {
        if(!$this->db_id = @mysql_connect($db_location, $db_user, $db_pass)) {
            if($show_error == 1) {
                $this->display_error(mysql_error(), mysql_errno());
            } else {
                return false;
            }
        } 

        if(!@mysql_select_db($db_name, $this->db_id)) {
            if($show_error == 1) {
                $this->display_error(mysql_error(), mysql_errno());
            } else {
                return false;
            }
        }

        mysql_query("/*!40101 SET NAMES 'cp1251' */");
        return true;
    }


Все теперь, у вас точно пропадут все знаки "???", да кстати перед тем как проверяете решилась проблема или нет, незабывайте удалять все файлы .php из папок engine/cache/ и engine/cache/system/. Это кеш из базы данных.

Комментарии

  1. NewsMaker (Посетители)

    13 декабря 2006 00:14 10 комментариев
    Первый

    Суппер!!
  2. ComBo (Посетители)

    13 декабря 2006 07:44 45 комментариев
    У меня таких проблем еще не было!!! И хорошо как то влом ковыряться и настраивать)))
  3. Ксандер (Клиенты)

    13 декабря 2006 09:23 24 комментария
    Отличненько, только малёха позновато(в моём случае), пришлось со старого хостинга контрлцешитьконтрлвешить пару десятков новостей, но это сущие пустяки, щас новый хостинг с профнастроеным серваком.
    Ну думаю для новеньких в самый раз так как действительно админы бывают ленивыми(реже неопытными)...
  4. Репа-Х (Посетители)

    13 декабря 2006 10:15 53 комментария
    Люди тупеют с каждой сикундой, неушто так трудно кодировку переставлять?
  5. Sity (Посетители)

    13 декабря 2006 11:51 20 комментариев
    celsoft

    У меня (по-умолчанию) стоит кодировка utf8_general_ci,и с прежними версиями движка все было нормально.Сейчас же я выполнил твой 1 пунктик,база теперь в cp1251_general_ci,кеш из папок удалил-все как было так и осталось(новости-вопросики,названия групп-вопросики,голосование-вопросики.Все остальное в норме.)
    И что делать?

    3 пункт выполнил-все без изменений.=(
  6. celsoft (Администраторы)

    13 декабря 2006 12:05 4 033 комментария
    Цитата: Sity
    У меня (по-умолчанию) стоит кодировка utf8_general_ci,и с прежними версиями движка все было нормально.Сейчас же я выполнил твой 1 пунктик,база теперь в cp1251_general_ci,кеш из папок удалил-все как было так и осталось(новости-вопросики,названия групп-вопросики,голосование-вопросики.Все остальное в норме.)
    И что делать?

    там три пункта а не один, выполняйте все.
  7. Sity (Посетители)

    13 декабря 2006 12:14 20 комментариев
    Все теперь нормально! smile Все заработало после выполнения 1-2 пункта.Большое спасибо!
    Жаль только что теперь все работает не сразу(с нуля),а необходимо еще заниматься подобными настройками.
  8. starsh1ne (Посетители)

    13 декабря 2006 18:36 10 комментариев
    а у меня даже после 3 пунктов голосовалка, название групп в профиле и в админке отображается ????

    что делать?
  9. d-view (Посетители)

    14 декабря 2006 07:15 37 комментариев
    Первые два пункта выполнять не пришлось, так как и так уже стояло cp1251_general_ci, а третий сработал, сэнкс! wink

    P.s.: celsoft, я вот что думаю, может стоит собрать статистику по данному вопросу и рассмотреть замену в engine/inc/mysql.php уже в дистрибе?
  10. Sity (Посетители)

    14 декабря 2006 10:15 20 комментариев
    Сегодня переставлял заново и если честно все 3-пункта не помогли как в прошлый раз.Все равно новости(что идут в комплекте)+голосование(в комплекте)+категории пользователей+название категорий-все одни вопросы!

    celsoft,ты не обижайся на нас пожалуйста,но нужно как-то это решать!
    Ведь на прежних версиях этого НЕ БЫЛО! sad

    P.S Напишите пожалуйста название всех категорий пользователей и номеров групп-сижу правлю руками,а то я не помню где какая... wassat
  11. d-view (Посетители)

    14 декабря 2006 10:21 37 комментариев
    Цитата: Sity
    Напишите пожалуйста название всех категорий пользователей и номеров групп-сижу правлю руками,а то я не помню где какая...

    Открой любую категорию на правку и сохрани ее не меняя.. Должно помочь..
  12. Sity (Посетители)

    14 декабря 2006 10:52 20 комментариев
    Открой любую категорию на правку и сохрани ее не меняя.. Должно помочь..


    Не помогло... sad Если не трудно-напиши пожалуйста название(дефолтное) категорий пользователей(с номерами).
    Спасибо.
  13. d-view (Посетители)

    14 декабря 2006 11:02 37 комментариев
    1 Администраторы
    2 Главные редакторы
    3 Журналисты
    4 Посетители
    5 Гости
  14. Sity (Посетители)

    14 декабря 2006 11:11 20 комментариев
    d-view

    Огромное спасибо! smile
  15. FraLL (Клиенты)

    14 декабря 2006 16:25 11 комментариев
    у меня не катит :(
  16. FraLL (Клиенты)

    14 декабря 2006 16:25 11 комментариев
    а если я апсерв удалю и заново поставлю это поможет? sad
  17. FraLL (Клиенты)

    14 декабря 2006 16:30 11 комментариев
    И при установке appservera latin1 так и оставить?
  18. lazutchik (Клиенты)

    20 декабря 2006 21:24 12 комментариев
    Мне не помогло ничего...
    Нашел выход экстремальный)
    удалить /*!40101 SET NAMES 'cp1251' */ из скрипта установки, мне помогло, но думаю не лучший выход это.
  19. mvia (Клиенты)

    20 декабря 2006 22:44 25 комментариев
    Спасибо, помог только последний совет. БД была настроена по совету см. выше. Но без какого то эффекта.
  20. MagaSoft (Клиенты)

    23 декабря 2006 04:04 5 комментариев
    lazutchik, т.е. база встала с сопоставлением по-умолчанию и все работает?
    А если менять сопоставление базы нельзя, даже отдельных таблиц дле на сп1251, возможно будет избежать этих трудностей?
  21. FraLL (Клиенты)

    23 декабря 2006 13:29 11 комментариев
    3-ий способ рулит wink
  22. dvgid (Посетители)

    23 декабря 2006 15:38 1 комментарий
    а сажите пожалуйста в ком файле у май админа надо поменять кодировку, и вкаком месте, если у меня майадмин вообще не загружается
  23. Oxya^ (Посетители)

    26 декабря 2006 18:40 2 комментария
    Огромное спасибо! 3й пунк действительно помог!!!


    3 Дня спорил с Эстонским хостингом tongue
  24. DJNIKE (Посетители)

    29 декабря 2006 10:28 1 комментарий
    первые два способа не помогают:(
    А с третьим проблема следующая -
    вместо указанного в статье кода - кракозябры.
    судя, по всему файл зашифрован чем-то:(

    Работаю с демоверсией CMS на локолбной машине.
    Как мне можно решиьт проблему с вопросиками?
  25. celsoft (Администраторы)

    29 декабря 2006 13:49 4 033 комментария
    Цитата: DJNIKE
    Работаю с демоверсией CMS на локолбной машине.
    Как мне можно решиьт проблему с вопросиками?

    поддержка бесплатных версий не осуществляется. Настройте на сервере локали по умолчанию на кирилицу и проблем не будет.
  26. FraLL (Клиенты)

    30 декабря 2006 12:10 11 комментариев
    laughing laughing laughing laughing laughing laughing laughing laughing laughing laughing laughing laughing laughing 3 РУЛИИИТТТТТТТТТ!!!!!!!!!!!!!!!!!!!!!!!!!
    !!!!!!!!!!! tongue
  27. Yanochka (Посетители)

    3 января 2007 09:04 5 комментариев
    У меня вообще не катит не один способ, сайт www.goleodor.ru
  28. Ustas (Посетители)

    22 января 2007 18:54 9 комментариев
    тока в 5.3 такого нету:-)
  29. winblog (Клиенты)

    24 января 2007 15:36 30 комментариев
    А что делать если такая проблема появилась при апгрейде на 5.3???
  30. onix111 (Клиенты)

    28 января 2007 15:25 2 комментария
    да и у меня появилось в 5,3

Информация

Комментирование публикаций доступно только пользователям имеющим действующую лицензию на скрипт. Если вы уже приобретали скрипт, то вам необходимо зайти на сайт под своим клиентским аккаунтом.

Календарь

«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930 

Опрос на сайте

Совершаете ли вы покупки в интернет?