Помощь Прошу помощи с кодировкой БД после переноса prestashop на другой хостинг

Hedge

Постоялец
Регистрация
12 Авг 2013
Сообщения
202
Реакции
120
DigitalOcean
ubuntu 20.04
nginx
mysql 5.7
php 7.4-fpm
prestashop 1.6.1.24

Импортировал базу данных, которую ранее экспортировал на другом сервере. Перед импортом ставил для каждой базы 'set names utf8'
Есть следующие проблемы:
1. При сабмите формы количество символов воспринимается как x2, то есть заполнено 100, скрипт говорит, что 200.
2. Вот такие проблемы с отображением подписей к картинкам товаров в админке:

Что смотреть? Где-то смотреть кодировки или еще что-то? На сервере? В настройках MySQL?

Спасибо заранее.
 

Вложения

  • coding.png
    coding.png
    6 KB · Просмотры: 3
Последнее редактирование:
DigitalOcean
ubuntu 20.04
nginx
mysql 5.7
php 7.4-fpm
prestashop 1.6.1.24

Импортировал базу данных, которую ранее экспортировал на другом сервере. Перед импортом ставил для каждой базы 'set names utf8'
Есть следующие проблемы:
1. При сабмите формы количество символов воспринимается как x2, то есть заполнено 100, скрипт говорит, что 200.
2. Вот такие проблемы с отображением подписей к картинкам товаров в админке:

Что смотреть? Где-то смотреть кодировки или еще что-то? На сервере? В настройках MySQL?

Спасибо заранее.
при импорте указали скорее всего не ту кодировку файла. Должна быть утф8 скорее всего. Но если экспорт делали в другой - то нужно при импорте указать ее. Это именно кодировка для файла - не базы.
 
Что теперь можно сделать с уже импортированной базой, если старая утрачена?
 
ох - е... Было такое как то. Пришлось очень сильно поиграться. Для начала нужно понять насколько база большая. Сколько товаров? И сколько весит сама база? Так там полетели только таблицы в которых присутствовал текст. Цифры отображаются нормально. А это уже уменьшает количество таблиц для редактирования. Нужно выбрать одну из них и пробовать на дубликате сайта. Я бы сделал експорт а потом декодировал файл. Либо при открытии принудительно выбрал кодировку. Все зависит какой программой будете работать.
 
Успешно порешал с помощью stackoverflow. Вот как:
SQL:
Use mysql;

SELECT CONCAT("ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CHARACTER SET utf8 COLLATE utf8_general_ci; ", "ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; ") AS alter_sql FROM information_schema.TABLES WHERE TABLE_SCHEMA = "your_database_name";
Большое спасибо за первоначальтную наводку.
 
Странно. Кодировка напоминалс cp1251. Проверьте как новые данные в базу попадат. У меня тогда была проблема как раз с отображением в базе. Старые данные кракозябликами отображались в базе, а на сайте нормально. А новые отображались и там и там норм. Но изза кодировки - тормозил сайт. Но это был частный случай. Поэтому не претендует на чтото больше, чем просто проверить.
 
Новые данные после импорта попадали в базу в корректной кодировке.
Пытался найти решение для SQL 5.7, как сделать так, чтобы вновь создаваемые базы работали в UTF8. Пока наполовину упешно.
 
Назад
Сверху