Автор Тема: В бэк офисе админке кодировка русского текста категорий отображается как ???  (Прочитано 558 раз)

24 Апрель 2020, 20:24:24
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • я не программист, я просто системщик
    • Просмотр профиля
Здравствуйте!

Установил Prestashop 1.7.6.4 с кодировкой UTF-8 /classes/db/DbPDO.php

База данных utf8_general_ci и utf8_unicode_ci импортировал с Prestashop 1.6
В бэк-офисе русский текст отображается вопросами:
  • Каталог / Категории
  • Клиенты / Клиенты (Управление клиентами)
  • Расширенные параметры / E-mail
В остальных местах проблем нет, на фронт-офисе тоже проблем нет.

Подскажите пожалуйста как исправить
25 Апрель 2020, 11:11:56
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16108
  • Репутация: +14614/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В базе данных смотрите таблицы категрий, клиентов.
Текстовые поля должны быть в utf8.
25 Апрель 2020, 16:11:43
Ответ #2
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • я не программист, я просто системщик
    • Просмотр профиля
В базе данных смотрите таблицы категрий, клиентов.
Текстовые поля должны быть в utf8.

База данных utf8_general_ci и utf8_unicode_ci

Я так думаю что проблема в отображении в админке именно в этих страницах
Каталог / Категории
Клиенты / Клиенты (Управление клиентами)
Расширенные параметры / E-mail

Как и в каком файле можно исправить?
25 Апрель 2020, 16:35:30
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16108
  • Репутация: +14614/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Файлы исправлять не нужно, если вы скачивали prestashop с оф. сайта.
Кодировка UFT8 в них устанолвена по умолчанию.
Проблема возникла во время импорта базы данных.
Поэтому и решать ее нужно в базе.
25 Апрель 2020, 21:18:07
Ответ #4
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • я не программист, я просто системщик
    • Просмотр профиля
Файлы исправлять не нужно, если вы скачивали prestashop с оф. сайта.
Кодировка UFT8 в них устанолвена по умолчанию.
Проблема возникла во время импорта базы данных.
Поэтому и решать ее нужно в базе.

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

в скриншоте видно что "Бытовая техника" с верху отображается без каракуль, а в таблице ниже обведено красным уже с каракулями.

26 Апрель 2020, 11:32:57
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1489
  • Репутация: +26/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Если бы проблема была в файлах prestashop, тогда после установки на этих страницах были бы вопросы.
Когда ставишь prestashop с демо товарами на русском, то таких проблем нет.
В вашем случае не понятно вот это:
Цитировать
Установил Prestashop 1.7.6.4 с кодировкой UTF-8 /classes/db/DbPDO.php
При установке prestashop кодировку не выбирают, она по умолчанию в юникоде.
Как вы устанавливали кодировку?
26 Апрель 2020, 11:53:19
Ответ #6
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • я не программист, я просто системщик
    • Просмотр профиля
Если бы проблема была в файлах prestashop, тогда после установки на этих страницах были бы вопросы.
Когда ставишь prestashop с демо товарами на русском, то таких проблем нет.
В вашем случае не понятно вот это:
Цитировать
Установил Prestashop 1.7.6.4 с кодировкой UTF-8 /classes/db/DbPDO.php
При установке prestashop кодировку не выбирают, она по умолчанию в юникоде.
Как вы устанавливали кодировку?


делал по такой инструкции, предоставленной eMagicOne Store Manager for PrestaShop:

ДО установки Prestashop , необходимо в файле /classes/db/DbPDO.php добавить код в функцию connect()
В итоге функция должна выглядеть следующим образом:
___________
public function connect()
{
try {
$this->link = $this->getPDO($this->server, $this->user, $this->password, $this->database, 5);
} catch (PDOException $e) {
throw new PrestaShopException('Link to database cannot be established: '.$e->getMessage());
}

// UTF-8 support
if ($this->link->exec('SET NAMES \'utf8\'') === false) {
throw new PrestaShopException('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.');
}

$this->link->exec('SET SESSION sql_mode = \'\'');

return $this->link;
}
___________

Внести изменение в код нужно ДО УСТАНОВКИ Presta на хостинг и производить установку уже с новым файлом DbPDO.php
После такой манипуляции исчезнут "нечитаемости" хоть для прямой загрузки, хоть Store Manager, хоть ftp...
На сервере везде кодировка должна быть UTF-8, как у БД, так и у всех файлов.
Если внести изменения на уже установленном движке - то весь русский текст на сайте станет не читаемым и все придется переводить через код в файлах шаблона - перевод через бэк-офис результатов (в этом случае) не даст...(Проверено на 1.7.4.2)

PS. сегодня поискал этот код в гугле и нашел его на https://nulled.in/threads/299380/