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

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

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

И так вы установили скрипт и с удивлением обнаружили что у вас ??? вместо русского текста, то конечно впервую очередь идут гневные вопросы авторам скрипта. Хотя я бы на вашем месте впервую очередь задал бы этот вопрос вашему хостеру. Мне тоже например интересно почему у хостеров в России локаль по умолчанию в 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/. Это кеш из базы данных.

Комментарии

NewsMaker

NewsMaker

13 декабря 2006 00:14 Посетители
1
Первый

Суппер!!
ComBo

ComBo

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

Ксандер

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

Репа-Х

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

Sity

13 декабря 2006 11:51 Посетители
2
celsoft

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

3 пункт выполнил-все без изменений.=(
celsoft

celsoft

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

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

Sity

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

starsh1ne

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

что делать?
d-view

d-view

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

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

Sity

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

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

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

d-view

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

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

Sity

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


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

d-view

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

Sity

14 декабря 2006 11:11 Посетители
0
d-view

Огромное спасибо! smile
FraLL

FraLL

14 декабря 2006 16:25 Клиенты
0
у меня не катит :(
FraLL

FraLL

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

FraLL

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

lazutchik

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

mvia

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

MagaSoft

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

FraLL

23 декабря 2006 13:29 Клиенты
0
3-ий способ рулит wink
dvgid

dvgid

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

Oxya^

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


3 Дня спорил с Эстонским хостингом tongue
DJNIKE

DJNIKE

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

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

celsoft

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

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

FraLL

30 декабря 2006 12:10 Клиенты
0
laughing laughing laughing laughing laughing laughing laughing laughing laughing laughing laughing laughing laughing 3 РУЛИИИТТТТТТТТТ!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!! tongue
Yanochka

Yanochka

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

Ustas

22 января 2007 18:54 Посетители
0
тока в 5.3 такого нету:-)
winblog

winblog

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

onix111

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

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Календарь
«    Апрель 2017    »
ПнВтСрЧтПтСбВс
 12
3456789
10111213141516
17181920212223
24252627282930
Опрос на сайте
Совершаете ли вы покупки в интернет?

Популярные новости
Архив новостей
Апрель 2017 (3)
Март 2017 (2)
Февраль 2017 (1)
Январь 2017 (1)
Декабрь 2016 (3)
Ноябрь 2016 (3)