
|
EOMY.NET Хостинг EOMY.NET: Форум поддержки
|
|
кодировка БД
|
| Автор |
Сообщение |
eomysupport Администратор

Зарегистрирован: 25.12.2005 Сообщения: 4542
171232 
|
|
| Вернуться к началу |
|
 |
didaio Пользователь хостинга
Зарегистрирован: 20.09.2006 Сообщения: 4
0 
|
Добавлено: Чт, 28 Сен, 2006 12:16 Заголовок сообщения: |
|
|
Да, пробовал.
В итоге помогло добавление параметров кодировки (cp1251) в пхп-скрипт, а данные в базе - в utf8. Только так всё на сайте отображается нормально.
Еще нашел сообщение у другого хостера, которое, похоже, связано с этой проблемой. Может быть оно поможет Вам разобраться и у себя.
http://forum.openhosting.ru/index.php?t=msg&th=25 |
|
| Вернуться к началу |
|
 |
Дедушка Стри Хостинг — это наше всё!


Зарегистрирован: 16.10.2006 Сообщения: 173 Откуда: Украина, Луганск 4305 
|
Добавлено: Вс, 29 Окт, 2006 02:04 Заголовок сообщения: |
|
|
Нде...
И все же вопрос с кодировкой БД актуален. К примеру, имеется база форума, которая с мускуля 3.23 сохраняется в cp1251. Сохраняю базу Sypex Dumper'om (бывший Site Keeper Dumper). На EOMY кодировка стоит utf8. Оки, с помощью Macromedia Dreamweaver база перегоняется в оный юникод. Однако после установки базы на форуме все равно выдаются вопросики. При этом языковые файлы, также рекодированные в юникод, отображаются без проблем. База же корректно отображается в ПхпАдмине.
Если прописать в скрипте использования БД
mysql_query('SET NAMES UTF8');
mysql_query('SET CHARACTER SET UTF8');
mysql_query("SET collation_connection='utf8_general_ci'");
то вопросики превращаются в текст. Но при этом нарушается работа форума. Да и количество запросов к серверу ведь возрастает, а форум и так в этом плане скромностью не страдает.
Возможно ли, что без указания чарсета при использовании БД, данные выдаются пользователю в другой кодировке? К примеру, чарсет сервера и ряд других переменных стоят latin1.
Также вопрос к хостеру - а можно ли поднять отдельный сервер для русских пользователей с используемой кодировкой cp1251?
Если у кого-то имеется успешный опыт переноса БД с кодировкой в cp1251 на данный хостинг, отпишитесь, пожалуйста, как Вы решили проблему с конвертацией данных.
С уважением. |
|
| Вернуться к началу |
|
 |
Дедушка Стри Хостинг — это наше всё!


Зарегистрирован: 16.10.2006 Сообщения: 173 Откуда: Украина, Луганск 4305 
|
Добавлено: Вс, 29 Окт, 2006 04:09 Заголовок сообщения: |
|
|
Упс, прошу прощения, проблемка решена.
Что собственно необходимо сделать при переносе базы данных из mysql ранних версий в mysql-4.1:
- перед заливкой бэкапа MySQL со старого хостинга на EOMY в самом начале дампа добавляем
| Код: | SET collation_connection = cp1251_general_ci;
SET collation_database = cp1251_general_ci;
SET collation_server = cp1251_general_ci;
SET character_set_client = cp1251;
SET character_set_connection = cp1251;
SET character_set_database = cp1251;
SET character_set_results = cp1251;
SET character_set_server = cp1251; |
- заливаем на EOMY, рекомендую пользоваться Sypex Dumper'om, это большая экономия Вашего времени по сравнению с phpMyAdmin
- скачиваем дамп базы с EOMY обратно (таким образом появляется новый параметр CHARSET в таблицах, данные в INSERT теперь в utf-
- ищем файлы, которые отвечают за подключение к БД в Вашем скрипте и прописываем там в правильном оформлении
SET NAMES cp1251;
Для форумов IPB 2.1:
открыть \ips_kernel\ class_db_mysql.php
найти:
| Код: | if ( ! mysql_select_db($this->obj['sql_database'], $this->connection_id) )
{
$this->fatal_error();
return FALSE;
} |
вставить после:
| Код: | | mysql_query('SET NAMES cp1251'); |
открыть \sources\ipsclass.php
найти:
| Код: | | $this->DB->connect() |
вставить после:
| Код: | | mysql_query('SET NAMES cp1251'); |
|
|
| Вернуться к началу |
|
 |
larstas Интернет на завтрак


Зарегистрирован: 09.12.2006 Сообщения: 88 Откуда: Украина, Луганск 4426 
|
Добавлено: Пт, 15 Дек, 2006 05:53 Заголовок сообщения: |
|
|
Дедушка Стри! Привет, земеля! Я тоже из Луганска. Хотя эт не так важно. Нашел, как исправить данный глючок. Ты писал:
| Дедушка Стри писал(а): | SET collation_connection = cp1251_general_ci;
SET collation_database = cp1251_general_ci;
SET collation_server = cp1251_general_ci;
SET character_set_client = cp1251;
SET character_set_connection = cp1251;
SET character_set_database = cp1251;
SET character_set_results = cp1251;
SET character_set_server = cp1251; |
Да - отличная идея, и все бы хорошо, да только в Слайде (ЦМС такая) не помогает предложенная тобой вставка кода в функции соединения с БД. И я придумал другое решение:
Просто когда мы грузим на сервер дамп, то лучше грузить его через раздел "Импорт", а не "SQL". В таком случае нам нужно загружать на сервак файл дампа. Дамп у нас, как уже говорилось в win-1251. Смотрим в разделе "Импорт": Кодировка файла и меняем с изначально установленного UTF-8 на нормальный руссич - cp1251.
Товарищи, просьба отписаться у кого что получается и каким образом. |
|
| Вернуться к началу |
|
 |
madhamster $a ||= 5;


Зарегистрирован: 09.10.2006 Сообщения: 890
13420 
|
Добавлено: Пт, 15 Дек, 2006 10:57 Заголовок сообщения: |
|
|
У меня всё заработало после того как добавил строку mysql_query("set names'cp1251'"); это что касалось востоновления базы.
А если ставлю новый двиг то всё впорядке... _________________ NextStage - live music competition |
|
| Вернуться к началу |
|
 |
Дедушка Стри Хостинг — это наше всё!


Зарегистрирован: 16.10.2006 Сообщения: 173 Откуда: Украина, Луганск 4305 
|
Добавлено: Пт, 15 Дек, 2006 20:15 Заголовок сообщения: |
|
|
larstas, предложенное решение универсальное.
Возможно, в файлах SLAED, отвечающих за подключение к БД, Вы неправильно, либо же не там где надо прописали SET NAMES cp1251. |
|
| Вернуться к началу |
|
 |
larstas Интернет на завтрак


Зарегистрирован: 09.12.2006 Сообщения: 88 Откуда: Украина, Луганск 4426 
|
Добавлено: Сб, 16 Дек, 2006 09:43 Заголовок сообщения: |
|
|
Дедушка Стри, ну ты мна обижаешь. Я вроде бы как бы сам программер и сам могу сделать класс для работы с БД. Поэтому неправильное вписание кода исключено. Я же просто нашел новый способ для избежания этой распространенной ошибки.
Кстати, это стоило мне установки МуСКуЛа той же версии, что и у хостера и МуАдмина той же версии. ВСе прекрасно
Спасибо, кстати за помощь. |
|
| Вернуться к началу |
|
 |
Дедушка Стри Хостинг — это наше всё!


Зарегистрирован: 16.10.2006 Сообщения: 173 Откуда: Украина, Луганск 4305 
|
Добавлено: Сб, 16 Дек, 2006 16:07 Заголовок сообщения: |
|
|
| Рад, что все у Вас работает. Если чем-то Вас обидел - прошу прощения, я этого не хотел. |
|
| Вернуться к началу |
|
 |
larstas Интернет на завтрак


Зарегистрирован: 09.12.2006 Сообщения: 88 Откуда: Украина, Луганск 4426 
|
Добавлено: Сб, 16 Дек, 2006 20:54 Заголовок сообщения: |
|
|
Дедушка Стри, все ОК!  |
|
| Вернуться к началу |
|
 |
Хортица Интернет на завтрак


Зарегистрирован: 13.06.2006 Сообщения: 91 Откуда: о.Хортица 10146 
|
Добавлено: Пн, 18 Дек, 2006 12:05 Заголовок сообщения: |
|
|
Товарищи!
Подскажите получайнику ...
В CMS установил кодировку UTF8
В phpMyAdmin тоже UTF8
Когда редактирую и просматриваю новость все отображается коректно, когда отправляю новость на сайт, там вместо русских символов "????"
Как быть?! |
|
| Вернуться к началу |
|
 |
Хортица Интернет на завтрак


Зарегистрирован: 13.06.2006 Сообщения: 91 Откуда: о.Хортица 10146 
|
Добавлено: Пн, 18 Дек, 2006 13:24 Заголовок сообщения: |
|
|
у кого движек ДЛЕ и будет подобная проблема пишите в личку или icq!
моя проблема уже решилась... |
|
| Вернуться к началу |
|
 |
Davis Интернет на завтрак

Зарегистрирован: 17.07.2006 Сообщения: 33
799 
|
Добавлено: Пн, 08 Янв, 2007 05:25 Заголовок сообщения: |
|
|
У меня самописный сайт расчитаный как раз на UTF-8
но всё равно вопросительные знаки вместо буковок в гостевой. Сейчас решаю.
http://CFreeLancer.Zoxt.Net |
|
| Вернуться к началу |
|
 |
Davis Интернет на завтрак

Зарегистрирован: 17.07.2006 Сообщения: 33
799 
|
Добавлено: Пн, 08 Янв, 2007 06:52 Заголовок сообщения: |
|
|
Не сочтите за пеар только.
Уже поправил вроде.
Главное не забывать указывать кодировку при создании таблицы. |
|
| Вернуться к началу |
|
 |
KAIN Интернет на завтрак

Зарегистрирован: 26.12.2006 Сообщения: 46
1829 
|
Добавлено: Пн, 08 Янв, 2007 13:57 Заголовок сообщения: |
|
|
кхм народ, наверняка у Вас есть файл config.php ?
Вам всего лишь нужно прописать в этом файле вот это:
| Код: | <?
$dblocation = "localhost";
$dbname = "XXX";
$dbuser = "xxx";
$dbpasswd = "XXX";
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
mysql_select_db($dbname);
[b]mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");[/b]
?> |
Всё просто!
Сначала у меня была та же проблема что и у Вас.
Я её попраил именно этим способом, дело в том, что нужно задавать кодировку не только входным параметрам но и выходным - так надёжнее.
Всем удачи и приятного дня! |
|
| Вернуться к началу |
|
 |
|
Powered by phpBB © 2001, 2005 phpBB Group
|