Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

Попытаюсь описать ситуацию предельно подробно. Версия движка 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

Рекомендованные сообщения

Опубликовано:

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

Опубликовано:

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

Опубликовано:
  • Автор

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

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

Опубликовано:
  • Автор

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

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

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

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

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

Опубликовано:

Изучите

 

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

 

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

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

Опубликовано:
  • Автор

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

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

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'

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

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

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

Изменено пользователем Ascold

Опубликовано:

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

 

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

 

DEFAULT CHARACTER SET utf8

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

Опубликовано:
  • Автор

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

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

Опубликовано:

Вам нужно:

- создать бд

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

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

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

 

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

Опубликовано:
  • Автор

Вам нужно

- создать бд

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

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

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

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

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

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

a7f907d98093.jpg

Изменено пользователем Ascold

Опубликовано:

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

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

 

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

 

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

Опубликовано:
  • Автор

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

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

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

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

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

Опубликовано:

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

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

 

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

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

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.