Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Ascold

Проблема с кодировкой! ("поиск" не помог)

Recommended Posts

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

Необходимо перенести форум с локалхоста на удалённый сервер. На локалхосте весь текст на форуме отображается верно.

Делаю по инструкции:

1. Заливаю файлы на удалённый сервер.

2. На локал хосте делаю экспорт дампа базы данных в архив .gz, предварительно проверив кодировки.

Главная страница phpmyadmin

a50fa3a29897.jpg

Видно, что кодировка mysql - utf-8

Открываем нужную базу

a7f907d98093.jpg

Видим, что кодировка таблиц тоже utf-8

3. Создаю на удалённом сервере необходимую базу (попутно меняя данные в conf_global), проверив на нём кодировку mysql по умолчанию

40e4a21c1d94.jpg

4. Импортирую готовый дамп в эту базу.

Настройки форума в админке на локале и удалённом - идентичны.

eaa1e47148fe.jpg

 

f43c2ee21b98.jpg

 

В итоге на удалёнке получаю "????" вместо текста тем и сообщений, при этом все форумные обозначения отображаются верно - http://teonanakatl.com/forum1/

Изменения кодировки на utf-8 в админке (рис. из п.4) ничего не даёт.

Добавление сточки $INFO['sql_charset'] = 'utf8'; в conf_global ничего не даёт.

Редактирование .htaccess проблему не решило.

 

Подскажите, что я делаю не так? Помогите разобраться, могу предоставить любую информацию о настройках.

 

ЗЫ

Смущает вид таблиц на локале:

89fb062f9b0d.jpg

и на удалёнке:

e4e1e90f3ded.jpg

Share this post


Link to post
Share on other sites

ну так проверьте вот это смущающее вас различие) скорее всего из-за него и так всё выглядит

Share this post


Link to post
Share on other sites

ну так проверьте вот это смущающее вас различие) скорее всего из-за него и так всё выглядит

Буду очень благодарен, если подскажите что конкретно нужно сделать!

Share this post


Link to post
Share on other sites

для 2, кодировка cp_1251_general_ci нужна

Можно подробнее? На удалённом сервере необходимо создать базу в кодировке cp_1251_general_ci ?

Но у меня нет прав создавать базы через phpmyadmin в нужной мне кодировке, базу можно создать только через панель управления в кодировке по умолчанию, т.е utf-8.

Может быть можно поменять кодировку через mysql-запрос? И как это правильно сделать - менять кодировку пустой вновь созданной базы, прогружая её впоследствии? Или можно поменять кодировку в уже прогруженной базе?

Если не сложно, опишите подробно весь алгоритм действий.

Share this post


Link to post
Share on other sites

Изучите

 

Предыдущие версии используют сравнение cp1251_general_ci

 

Запрос, смены сравнения.

ALTER DATABASE `ИМЯ БД` DEFAULT CHARACTER SET СТАРАЯ кодировка COLLATE cp1251_general_ci

Share this post


Link to post
Share on other sites

Изучил. Там нет ни слова о проблемах кодировки, информация только об установке. Установить форум (точнее перенести) получилось без проблем. А вот с кодировкой никак не могу совладать!

Запрос, смены сравнения.

ALTER DATABASE `ИМЯ БД` DEFAULT CHARACTER SET СТАРАЯ кодировка COLLATE cp1251_general_ci

Делаю запрос для пустой, только что созданной на удалёнке БД:

ALTER DATABASE `ИМЯ БД` DEFAULT CHARACTER SET utf8_unicode_ci COLLATE cp1251_general_ci

Получаю ошибку:

#1115 - Unknown character set: 'utf8_unicode_ci'

При замене utf8_unicode_ci на utf8_general_ci - такая же ошибка.

Такой запрос:

ALTER DATABASE `ИМЯ БД` DEFAULT CHARACTER SET utf8 COLLATE cp1251_general_ci

Даёт такую ошибку:

#1253 - COLLATION 'cp1251_general_ci' is not valid for CHARACTER SET 'utf8'

Прогружаю созданную на удалёнке БД с дампа.

Делаю анологичный запрос для этой же, но уже прогруженной БД - получаю те же самые ошибки!

Что теперь делаю не так?

Edited by Ascold

Share this post


Link to post
Share on other sites

Запрос левый, там две разные кодировки.

 

ALTER DATABASE `ИМЯ БД` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci

 

DEFAULT CHARACTER SET utf8

Зачем вы ставите utf8, если вам нужно cp1251?

Share this post


Link to post
Share on other sites

Зачем вы ставите utf8, если вам нужно cp1251?

В первоначальном указании было:

ALTER DATABASE `ИМЯ БД` DEFAULT CHARACTER SET СТАРАЯ кодировка COLLATE cp1251_general_ci

Я не очень силён в синтаксисе mysql, поэтому и подумал, что "старая" кодировка это та, которая у меня установлена сейчас.

Сейчас выполнил запрос:

ALTER DATABASE `ИМЯ БД` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci

Выполнился корректно. Но это не помогло, по прежнему вместо текста "????" - http://teonanakatl.com/forum1/

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

Share this post


Link to post
Share on other sites

Вам нужно:

- создать бд

- установить ей кодировку cp1251 выполнив запрос

- импортировать бэкап

Также проследить чтобы бэкап был сделан в правильной кодировке.

 

У вас на локалхосте что, бд в utf8?

Share this post


Link to post
Share on other sites

Вам нужно

- создать бд

- установить ей кодировку cp1251 выполнив запрос

- импортировать бэкап

Также проследить чтобы бэкап был сделан в правильной кодировке.

Всё это проделывал уже миллион раз!! Не работает! И не могу разобраться в чём дело, прямо мистика!

У вас на локалхосте что, бд в utf8?

Конечно. В первом посте я давал скриншот БД на локалхосте:

a7f907d98093.jpg

Edited by Ascold

Share this post


Link to post
Share on other sites

Вот что значит когда бардак в кодировке.

Поставьте sypex dumper, и задайте принудительно кодировка экспорта cp1251. Откройте дамп расширенным блокнотом типа notepad++ и убедитесь что там cp1251. На сервере также поставьте дампер и разверните сделанный им бэкап. Сравнение (COLLATE) таблиц наверное тоже придется поменять, это будет желательно сделать в бэкапе перед импортом.

 

Вообще имхо тут уже пора обращаться к специалистам.

 

В какой кодировке работает локальный mysql сервер и что прописано в conf_global.php для mysql_codepage? sql_charset сменился только начиная с 3x, и прописывать его там не нужно.

Share this post


Link to post
Share on other sites

Вот что значит когда бардак в кодировке.

Вобщем я перепробавал все известные мне, а так же все указанные тут варианты. Не срабатывает НИЧЕГО! Обращался к хостеру, он мало того что не решил проблему, так даже не смог установить причину, посоветовал обратиться к специалисту именно по IPB.

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

Вообще имхо тут уже пора обращаться к специалистам.

Подскажите, можно ли тут на форуме найти такого специалиста? Проблема требует решения, не бесплатно разумеется. Буду очень благодарен.

Share this post


Link to post
Share on other sites

а значит никакого бардака в кодировке нет!

Если он работал, и кодировка таблиц utf8 - значит уже есть, иначе вы бы непременно имели баги с мультибайтовыми строками в utf8. То, что работает далеко не означает что все нормально, неправильное сравнение таблиц уже не нормально. А пойди знай еще в какой кодировке было соединение с mysql сервером.

 

Подскажите, можно ли тут на форуме найти такого специалиста?

Можно. Пишите в ЛС.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...