Слетела кодировка форума - ????????? ??????

Автор Andrey_Li, 10 сентября 2006, 17:07:47

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Andrey_Li

Вот перешел  я на новый хостинг...

и теперь в форуме одни вопросы.

Попробывал в index.php сразу после соединения с базой вставить такой код
mysql_query("set CHARACTER SET cp1251") or die ("not available!");

Помогло частично, все вроде на "русском", но только название "топиков " с вопросами

www.forum.truck.com.ua

Может кто-то сталкивался с такой проблеммой
Контейнерные перевозки   Форум по грузовикам   Магазин по продаже грузовиков и автотранспорту

Mavn

если ты поставил дополнительные параметры по соединению с БД, а у тебя все равно все вопросами то соответственно посмотри как и что  у  тебя прописано в бд потому как если в БД вопросы то лечится только перезаливкой бэкапа
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Andrey_Li

Это я проверил/исправил в первую очередь.

Как я понял - дело в кодировке к которой запрашивают базу данных.
Контейнерные перевозки   Форум по грузовикам   Магазин по продаже грузовиков и автотранспорту

Aat

Цитата: Andrey_Li от 11 сентября 2006, 12:36:46
Это я проверил/исправил в первую очередь.

Как я понял - дело в кодировке к которой запрашивают базу данных.

открой phpmyadmin посмотри бд в какой кодировке.
Версия mysql какая на хосте.
Перезалей lang файлы.
Conquerors Of The Illusionary Expanses

Andrey_Li

БД в кодировке ср1251.
При просмотре в phpAdmin - видна хорошо.
msql на хосте 4.1.18
файлы я перезаливал... Все-таки чем писать в форум по "игрался" 2 суток.

Но, что я не понимаю - форум уже отображается, только "заголовки" тем нет !!!
Posted on: 11 September 2006, 13:58:28
Спасибо всем.

Разобрался.
Оказывается если, phpAdmin отображается правильно, это еще не всё...

Перезалил базу (раз 10 и более старую версию) - помогла.
Хотя без строчки
mysql_query("set CHARACTER SET cp1251") or die ("not available!");
не работает
Posted on: 11 September 2006, 14:59:24
Блин рано радовался ...
Название тем отображаются.
но в Pathway нет www.forum.truck.com.ua
Контейнерные перевозки   Форум по грузовикам   Магазин по продаже грузовиков и автотранспорту

algol

при создании категории или форума, если его вводить русскими то он потом отображается вопросами: ????????

Andrey_Li

Контейнерные перевозки   Форум по грузовикам   Магазин по продаже грузовиков и автотранспорту

Mavn

index.php кинь сюжа и плюс дамп структуры бд без данных! потому как данные не интересуют
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Devoll

Уважаемые пользователи, администраторы, модераторы и просто знающие люди! Сил больше нет моих. Ни яндекс ни поиск по форумам (в том числе и вашем) не помог мне избавиться от моей проблемы. Моя проблема в следующем:

1. Установил форум, русификация работает "на ура", но вот при написании сообщений вместо русских появляются ????. Переустанавливал не много не мало 13 раз - не работает.

Конфигурация сервера:
Apache 2.2.3
PHP 4.?.? (точную версию не помню)
MySQL 5.0.24

Использую phpMyAdmin 2.6.4

Убедительная просьба не отсылать на другие ПОХОЖИЕ (подчеркиваю) темы ибо они мне не помогли.

liman

второй раз пишу, пока писал первый раз, тему перенесли  knuppel
1)версия форума
2)в какой кодировке у тебя форум должен работать
3) проверь в какой кодировке у тебя база и сравни с кодировкой форума(если разные форум работать должен но бэкап не сделаешь простыми методами)
4) прочти что делалось выше и попробуй сделать

Результаты пропиши здесь, я хоть и сам новичок, но постараюсь помочь(у себя решил такую же проблему)

Mavn

liman
Перенесли чтобы не плодить однотипных тем

Devoll
если что делал выше перечисленное то приводи код куда чего вставлял как делал и что не помогло. Выше указаное решение помогает в 9 из 10 случаев так что веротность того что тебе это не помогло близка к нулю
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Devoll

Все, большое спасибо, избавился от этой проблемы путем вставки

mysql_query("set CHARACTER SET cp1251") or die ("not available!");

Всем большое спасибо

alex

Для того чтобы текст написанный в кодировке CP-1251, отображался правильно на вашем сайте, а не виде вопросов, достаточно вписать в скрипте который вы используете для вашего сайта следующие команды после соединения с базой данных :
код:
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'"); tickedoff




Andrey_Li

Уважаемый Alex

И куда вствить?
Я уже вставлял куда угодно у меня все работате... кроме одной маленькой вещи... название топиков http://forum.truck.com.ua/index.php?topic=32.0
и кстати слово карма (репутация) не меняется. Ни как...
Контейнерные перевозки   Форум по грузовикам   Магазин по продаже грузовиков и автотранспорту

Mavn

файл index.php

Код

// Connect to the MySQL database.
if (empty($db_persist))
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);

заменить
Код

// Connect to the MySQL database.
if (empty($db_persist))
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

если мы не ошибаемся то так
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

ReWWeR

Установил себе форум SMF 1.1, а он мне не всё пишет по-русски, пробовал и win-1251 и utf-8, один и тот же результат только местами всё же utf-8 переводил больше. Подскажите что делать?

Mavn

где и как выводятся эти самые закорючки. приведите скрин
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

liman

10 декабря 2006, 01:16:57 #17 Последнее редактирование: 10 декабря 2006, 01:21:16 от liman
ReWWeR  правильно ли я тебя понял-у тебя форум в utf-8, и приходится в браузере явно указывать UTF-8, если так, то в корень сайта кинь файл htaccess со строкой AddDefaultCharset UTF-8
Или ещё один вариант: после инстоляции форума сделал его перевод в UTF-8 методами форума, а файлы русификации для UTF-8 забыл кинуть(такая у меня проблема была с 1.1RC3)

P.S. В следующий раз, для того чтобы вам могли помочь, не гадая в чем же проблема, не ленитесь, описывайте проблему подробно.

alesas

как быть с базой данных? Установил SMF на сервере а он кодирует мне всё в latin1_swedish_ci, и что только не делаю не хочет ничего принимать. Поэтому всё что на самом сервере читается как русское а вот то что в базе данных резко превращается в знаки вопроса. Помогите пожалуста решить эту задачу

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

flash_os

После перехода на новый хостинг, текст который приходит на форум с Базы данных Я вижу знаки вопросов вместо нормального текста. А всё что загружено на сервере Я вижу ОК.

Mavn

смотри выше! Прежде чем где то писать используй поиск
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

flash_os

Извини, Я искал но нашёл. А может быть перевести базу данных в UTF-8 и это решит проблему?

Mavn

чего именно не нашел? Этого сообщения в данной теме
Цитата: Mavn от 08 декабря 2006, 16:06:20
файл index.php

Код

// Connect to the MySQL database.
if (empty($db_persist))
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);

заменить
Код

// Connect to the MySQL database.
if (empty($db_persist))
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

если мы не ошибаемся то так

или этого сообщения на которое в этой же теме есть ссылка?
Цитата: Mavn от 15 декабря 2006, 02:19:02
в общем все просто
index.php
Код: (Найти)

// Connect to the MySQL database.
if (empty($db_persist))
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);



Код: (Заменить на )

// Connect to the MySQL database.
if (empty($db_persist)) {
     $db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
} else {
     $db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
}


SSI.php

Код: (Найти)

// Connect to the MySQL database.
if (empty($db_persist))
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);



Код: (Заменить на)

// Connect to the MySQL database.
if (empty($db_persist)) {
     $db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
} else {
     $db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
}


все что нужно я привел все остальные действия за вами!!!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Avdenago

Кстати от себя добавлю, что данные три строчки запроса довольно таки универсалны имне помогали от всех проблем с кодировками - будь то СМФ, джумла, или иной какой продукт.

Andrey_Li

При очередной переустановке форума...
Производил замену кода, как сдесь было рекомендовано (в файле index.php) выскочила ошибка
Parse error: syntax error, unexpected T_ELSE in ...../public_html/forum/index.php on line 69

Избавился, что поставил не весь код ( а только его вторую часть)
Код
// Connect to the MySQL database.
if (empty($db_persist))
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);

else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
Контейнерные перевозки   Форум по грузовикам   Магазин по продаже грузовиков и автотранспорту

Viktor

Сделал, все, как описано выше, раз 7 перезаливал форум и начинал заново, но все равно вопросы вместо текста сообщений. Пытался менять кодировку, проверил кодировку БД, и все равно знаки вопроса. Ставил и 1251, и utf8, и koi8, ничего не помогло
Конфигурация сервера:
Версия форума: SMF 1.1.2
Последняя версия SMF: SMF 1.1.2
Версия PHP: 4.4.0
Версия MySQL: 4.1.11-Debian_4sarge7-log
Версия Web сервера: Apache
Версия GD: bundled (2.0.28 compatible)

Mavn

в базе у тебя что вопросы или все нормально?
также неплохо почитать вообще документацию по данному вопросу
http://www.simplemachines.ru/index.php/topic,1376.html
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Viktor

Нашел!!! :)
При установке я разрешал форуму самому все делать в БД. idiot
В последний раз я вручную создал БД из phpMyAdmin(по совету ТП хостера) все заработало!!! 8) O0
Да... вот что значит кривые руки и отсутствие знаний, еще толком не разобравшись уже всех на уши поднял. idiot

Всем спасибо и извините за беспокойство!

DjAndy

14 марта 2007, 09:52:31 #29 Последнее редактирование: 14 марта 2007, 15:57:33 от DjAndy
Вчера мучался весь день, так и не поборол пока.
Веб-сервер:  Apache/2.2.3 (Debian) PHP/5.2.0-10 mod_perl/2.0.2 Perl/v5.8.8
Названия тем, сообщения прописанные при установке, названия групп пользователей, всё прописалось битое и выводится ? ? ? ? ? ? ? вот так. (Что кстати за прикол что поиск этих вопросов на форуме не находит ?) Новые сообщения и темы прописываются и читаются нормально. В phpMyAdmin видно что и там, например в таблице smf_membergroups, прописано неверно.


http://www.radiodom.ck.ua/~andrey/files/smf_membergroups_view.png

Идём дальше. Моя база прописана с кодировкой cp1251_general_ci,
в то время как база mysql - latin1_swedish_ci. Вот:


http://www.radiodom.ck.ua/~andrey/files/bases.png

Что я ни делал, ничего не выходит. Причём, когда мучался с Joomla после установки на сервере новой версии MySql, решение нашёл на форуме joom.ru, а тут никак.

Фрагмент скриншота базы с таблицей SMF:

http://www.radiodom.ck.ua/~andrey/files/smf_table.png

DjAndy

14 марта 2007, 12:00:26 #30 Последнее редактирование: 14 марта 2007, 15:30:23 от DjAndy
По поиску на форуме joom.ru нашёл следующее:
http://forum.joom.ru/index.php?topic=4044.msg19283#msg19283

Код
Мдамс.., выложу что наковырял.., если не работает - то значит все мысли по этому поводу в утиль.
1. Файл index.php строка ~61 заменить:
Код
// Connect to the MySQL database.
if (empty($db_persist))
{
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
}
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
на:
Код
// Connect to the MySQL database.
if (empty($db_persist))
{
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
}
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
mysql_query( "set session character_set_client=cp1251;");
mysql_query( "sset session character_set_database=cp1251;");
mysql_query( "set session character_set_connection=cp1251;");
mysql_query( "set session character_set_results=cp1251;");
mysql_query( "set session character_set_client=cp1251;");

2. Файл Errors.php ~214 строка заменить:
Код
// Check for the "lost connection" or "deadlock found" errors - and try it just one more time.
if (in_array($query_errno, array(1205, 1213, 2006, 2013)))
{
if (in_array($query_errno, array(2006, 2013)))
{
if (empty($db_persist))
{
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
          }
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);

на:
Код
// Check for the "lost connection" or "deadlock found" errors - and try it just one more time.
if (in_array($query_errno, array(1205, 1213, 2006, 2013)))
{
if (in_array($query_errno, array(2006, 2013)))
{
if (empty($db_persist))
{
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
          }
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
mysql_query( "set session character_set_client=cp1251;");
mysql_query( "sset session character_set_database=cp1251;");
mysql_query( "set session character_set_connection=cp1251;");
mysql_query( "set session character_set_results=cp1251;");
mysql_query( "set session character_set_client=cp1251;");
3. Файл SSI.php тоже можно доработать строка ~64 заменить:
Код
// Connect to the MySQL database.
if (empty($db_persist))
{
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);

}
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
на:
Код
// Connect to the MySQL database.
if (empty($db_persist))
{
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
}
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
mysql_query( "set session character_set_client=cp1251;");
mysql_query( "sset session character_set_database=cp1251;");
mysql_query( "set session character_set_connection=cp1251;");
mysql_query( "set session character_set_results=cp1251;");
mysql_query( "set session character_set_client=cp1251;");
4. Ещё аналогично прописать в файле инсталяции и жестко задать кодировку создаваемых таблиц ( под рукой фалов нет что бы точно сказать что и где, делать по аналогии ).


Что скажут гуру об этом ? Может действительно нужно что-то в install.php прописывать ?

Тэкс. Попробвал сделать все изменения уже таким образом, не помогает.

Просил перед установкой админа провести через phpMyAdmin запрос SQL:
ALTER DATABASE db_NAME COLLATE 'cp1251_bin' CHARSET 'cp1251'
тоже не помогло....

Viktor

Создавай БД в глядя phphMyAdmin в кодировке utf8_unicode. У меня была та же проблема, именно таким способом по совету хостера и решил.

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

DjAndy

Прежде чем задавать вопросы поиском прошёлся, всё почитал и попробовал. Единственное чего я не могу сделать - создать новую базу, только таблицы в базе могу. Сисадмин не может разобраться как кодировку lаtin1_swedish_ci на что другое сменить. Все эти приколы с кодировками у него начались после перехода на новый MySql. Ок. Буду пробовать ещё.

DjAndy

15 марта 2007, 12:39:48 #34 Последнее редактирование: 15 марта 2007, 15:42:54 от DjAndy
Ещё раз скажу, всё что советовалось в этом топике и на странице http://www.simplemachines.ru/index.php/topic,1376.html уже делалось, как раздельно, так и одновременно. Пробовал так-же сделать backup и restoration с помощью утилиты отсюда - http://www.simplemachines.ru/index.php?action=tpmod;dl=item19, с заменой всех строк содержащих
Код
) TYPE=MyISAM;
на
Код
) TYPE=MyISAM  DEFAULT CHARSET=cp1251 DEFAULT COLLATE=cp1251_general_ci;
Во всех случаях восстановления базы из сохранённого дампа вылетали ошибки, форум переставал работать, таблиц в базе уменьшалось ровно на 2. Вот сообщение после отработки Backup Restoration Tool:

Код
Backup Restoration Tool
Some of the queries were not executed properly. Technical information about the queries:
Line #631: Invalid default value for 'logTime'
Line #639: Table 'db_andrey.smf2_log_online' doesn't exist
Line #707: Duplicate entry '????-2' for key 1
Line #1109: Invalid default value for 'last_update'
Line #1117: Table 'db_andrey.smf2_sessions' doesn't exist

Restoration process complete!
Congratulations! Your database backup has been restored successfully.

If you had any problems, please tell us about them so that we can help you get them resolved.
Good luck!
Simple Machines


Что интересно. Попробовал устанавливать в UTF-8 кодировке, всё нормально установилось сразу... И всё таки помоему грабли в install.php кроются. Там море всего по UTF-8 кодировке, и совсем ничего по cp1251.

DjAndy

15 марта 2007, 17:20:18 #35 Последнее редактирование: 15 марта 2007, 17:38:55 от DjAndy
Сделал наконец...
В файле install.php находим:
Код
	// Attempt a connection.
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);

Дописываем ниже строчку:
Код
	mysql_query("set names cp1251", $db_connection);

Далее находим строку:
Код
		$db_connection = @mysql_connect($db_server, $_POST['db_prefix'] . $db_user, $db_passwd);

Снова добавляем:
Код
		mysql_query("set names cp1251", $db_connection);

Сохраняем.

Открываем index.php, ищем строку
Код
// Connect to the MySQL database.

Всё что после неё до следующей строки начинающейся с "//" заменяем на:
Код
if (empty($db_persist))
{$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
mysql_query("set names cp1251", $db_connection);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");}
else
{$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
mysql_query("set names cp1251", $db_connection);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");}


Закрываем.

Точно такую же замену производим в SSI.php

Всё.

Да, естественно до вышеописанных замен было сделано следующее:

В файле install_1-1.sql заменены все строки:
Код
) TYPE=MyISAM

на
Код
) TYPE=MyISAM  DEFAULT CHARSET=cp1251 DEFAULT COLLATE=cp1251_general_ci;

В файле \Sources\Errors.php после 2-й строки содержащей:
Код
					$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);

добавлено:
Код
	mysql_query( "set session character_set_client=cp1251;");
mysql_query( "sset session character_set_database=cp1251;");
mysql_query( "set session character_set_connection=cp1251;");
mysql_query( "set session character_set_results=cp1251;");
mysql_query( "set session character_set_client=cp1251;");


В файле \Themes\default\languages\index.english.php строка:
Код
$txt['lang_character_set'] = 'ISO-8859-1';

заменена на:
Код
$txt['lang_character_set'] = 'windows-1251';


Может конечно я наделал где то и лишнего, сначала уже экспериментировать лень честно говоря. Но так работает всё с учётом исправления ошибок упомянутых в других топиках по поводу битой кодировки.
Кому интересно, архив со всеми изменёнными файлами можно забрать здесь: http://www.radiodom.ck.ua/files/smf_1-1-2_cp1251.rar

Последовательность установки.
1. Заливаем на сервер файлы из архива smf_1-1-2_install.tar.gz
2. Поверх заливаем всё руссифицированное из smf_1-1-2_russian.tar.gz
3. И последнее из моего архива smf_1-1-2_cp1251.rar
Наслаждаемся.

GeoD

22 марта 2007, 14:21:25 #36 Последнее редактирование: 22 марта 2007, 14:30:46 от GeoD
У меня была аналогичная проблема (русский текст, взятый из базы данных, отображался знаками вопроса и смайликами как ??????????? ???? ?? ??). База у хостера была в кодировке UTF-8 (и изменить ее было нельзя), текст в нее был залит в кодировке cp1251 и читался в phpmyAdmin нормально, сопоставление и  сравнение были установлены cp1251_general_ci. Но этого одного было мало.
В моем случае проблема исчезла после замен в файлах index.php и SSI.php по рекомендации Mavn - см. пост http://www.simplemachines.ru/index.php/topic,791.msg6900.html#msg6900
SMF+TP Fan

DjAndy

В моём случае и в phpMyAdmin все таблицы были заполнены неверно, вопросики вместо текста.

GeoD

Это значит, залил дамп не в той кодировке, что установлена для базы.
SMF+TP Fan

byte

Ставлю СМФ, с русским win1251, в SQLфайле прописал везде TYPE=MyISAM  DEFAULT CHARSET=cp1251 DEFAULT COLLATE=cp1251_general_ci; все равно часть русских букв "впросиками" отображается.

DJon

Может страница в другой кодировке гинерится?
СисАдмин - это, в первую очередь, "творческая личность" и только потом "пьяная скотина" ...

byte

Цитата: DJon от 26 апреля 2007, 16:33:07
Может страница в другой кодировке гинерится?

В базе тож "вопросики", где кирилица.

DJon

Попробуй поткрывать файл .sql в разных кодировках. (Например "штирлицем") Если прочтешь что там написано, то копируй это и вставляй в .sql с 1251 кодировкой. Делай востановление базы из файла и ... собственно все. ;)
СисАдмин - это, в первую очередь, "творческая личность" и только потом "пьяная скотина" ...

Mavn

Прежде чем задавать вопросы используем поиск!!!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Devotion

Вот, написал плагинчик для автоматического исправления файлов index, error и ssi.
(кодировка для соединения cp1251)

Mavn

Далеко не во всех случаях преминим данный патч как правило все файлы нужно править до установки форума здесь же патч можно преминить только после установки!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Ostap

Здравствуйте. Я зделал всё как написано тут но у меня всё равно ??? вместо кирилицы (((

Версия форума: SMF 1.1.2
Apache version   1.3.37 (Unix)
PHP version   5.2.1
MySQL version   5.0.27-standard

Mavn

1. в бд есть вопросы или нет
2. после каких действий у вас слетела кодировка?(установка, обновление, переезд на другой хост)
3. Кодировка бд
4. Кодировка сравнений бд
5. Кодировка таблиц бд
6. кодировка полей бд
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Ostap

1. в бд вопросов нет
2. не работала сразу после установки
3. MySQL-кодировка:  UTF-8 Unicode (utf8)
4. Сопоставление соединения с MySQL: utf_8_unicode_ci
5 и 6 не нашёл. где это можно посмотреть ?

Cep}I{

22 мая 2007, 21:40:33 #49 Последнее редактирование: 22 мая 2007, 21:50:13 от Cep}I{
В локальной сети, так сказать по наследству, достался (функционирует уже достаточно долго и имеет обширную базу) форум (SMF 1.1.2, локализация русская UTF-8), при установке которого, видимо не была поставлена галочка "использовать UTF-8" (База данных же в кодировке UTF-8), в связи с чем имеются мелкие "косяки" с отображением букв и крупные, например, невозможность отсылки личных сообщений на некоторые русские имена. Как вообще в этом случае происходит запись данных в базу (имеется ввиду, что с кодировками)? Получающийся набор символов в базе данных мне не поддается раскодированию  idiot хотя в самом форуме все выглядит более-менее нормально.
Каким образом можно перекодировать базу данных чтобы прицепить к ней нормальный движок (с этой чертовой галочкой)?
Заранее спасибо.