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 this post


Link to post

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

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

Share this post


Link to post

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

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

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

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

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

Share this post


Link to post

Изучите

 

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

 

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

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

Share this post


Link to post

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

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

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

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

 

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

 

DEFAULT CHARACTER SET utf8

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

Share this post


Link to post

Зачем вы ставите 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

Вам нужно:

- создать бд

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

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

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

 

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

Share this post


Link to post

Вам нужно

- создать бд

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

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

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

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

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

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

a7f907d98093.jpg

Edited by Ascold

Share this post


Link to post

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

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

 

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

 

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

Share this post


Link to post

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

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

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

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

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

Share this post


Link to post

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

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

 

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

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

Share this post


Link to post

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...