Не отображается большая буква "И"
mehcry
Новичок
: 1
: 30-04-2018


30-04-2018 21:59
Товарищи, подскажите как решить проблему с большой буквой И. Дело в том, что где используется большая буква "И" слово сразу же перестает отображаться. БД проверял, кодировка используется UTF - 8 . PS 1.7. Даже в админке такие слова, как : "Импорт, информация" не отображаются


:
Безымянный.png - 151.54KB, : 692 ()
 
  
baton94
Новичок
: 74
: 06-04-2014


23-08-2018 18:29
Цитата:( mehcry @ 30-04-2018 22:59 Смотреть сообщение )
Товарищи, подскажите как решить проблему с большой буквой И. Дело в том, что где используется большая буква "И" слово сразу же перестает отображаться. БД проверял, кодировка используется UTF - 8 . PS 1.7. Даже в админке такие слова, как : "Импорт, информация" не отображаются


Необходимо в файле /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;
    }


Соответственно и на сервере везде кодировка должна быть UTF-8, как у базы данных, так и у всех файлов.

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

Если сайт новый то проще внести изменение в код до установки Prestashop на свой хостинг и производить установку уже с новым файлом DbPDO.php
 
: 3 | : UniDay
  
Green0777
Новичок
: 1
: 06-07-2019


06-07-2019 18:52
Решил проблему следующим образом. Вставил предложенный кусок но не UTF8 а CP1251. Конветнул базу в CP1251 https://artkiev.com/blog/mysql-cp1251-to-utf8.htm. Тут правда обратный вариант описан, но cp1251 подставляем в место utf8. Как вариант для тех кто не может поменять хостинг, а договориться с тех поддержкой не получается. Это не спасает от "отсутствующих" элементов админки Информация и Импорт. Они есть просто не отображаются. Но теперь норм сохраняются товары категории и т.д. с буквами "И" и "ш"


Сообщение отредактировал Green0777 (06-07-2019 14:55)
 
  
UniDay
Новичок
: 6
: 11-09-2019


11-09-2019 20:37
Цитата:( baton94 @ 23-08-2018 19:29 Смотреть сообщение )
Необходимо в файле /classes/db/DbPDO.php добавить код в функцию connect()


Помогло частично )

В базе стало все читаемым наконец то (пришлось правда ее переконвертить вручную).
Так же все стало корректно отображаться в админке и на сайте за исключением одного "но"
Категории в админке отображаются вопросами.
Снимок экрана 2019-09-11 в 16.15.58.png - Размер файла52.68KB (Нажмите для увеличения)
При этом эти же категории в мониторинге светятся нормально.
Снимок экрана 2019-09-11 в 16.16.44.png - Размер файла29.41KB (Нажмите для увеличения)

Какие будут предложения?
 
  
UniDay
Новичок
: 6
: 11-09-2019


11-09-2019 21:08
Заметил такой же бардак в разделе Дизайн -> страницы Снимок экрана 2019-09-11 в 17.03.34.png - Размер файла42.13KB (Нажмите для увеличения)
И в интернационализации в различных вкладках.
 
  
UniDay
Новичок
: 6
: 11-09-2019


12-09-2019 13:48
Еще небольшой апдейт )

Если зайти в редактирование категории то все отображается корректно ... вопросы отображаются только на этапе предпросмотра.
 
  
UniDay
Новичок
: 6
: 11-09-2019


21-10-2019 17:51
С багами описаными выше работать можно ... неудобно но можно, а вот с этой бедой никак ... почему то не работает модуль админки интернационализация (где собственно все переводы) при попытке перевести шаблон все летит в кодировке винды (через 5 туочку) в базу а если в базе прописать сразу верные значения то они не отображаются на сайте никак и перестает работать админка с выдачей ошибки про неверную кодировку.


Сообщение отредактировал UniDay (21-10-2019 18:52)
 
  
UniDay
Новичок
: 6
: 11-09-2019


18-11-2019 15:45
Про перевод отбой ... все делается 1.7 иначе )

Все таки подбешивают вопросики в некоторых местах )
Увидеть правильное отображение и неправильное на одной странице можно в разделе товары - комбинации...

Снимок экрана 2019-11-18 в 11.41.18.png - Размер файла81.44KB (Нажмите для увеличения)

Кто нибудь ну подскажите где поковырять ))
Заранее огромнейшее спасибо!
 
  
LiberCode


Новичок
: 62
: Санкт-Петербург
: 14-03-2019


22-07-2020 13:02
Цитата:
Решил проблему следующим образом. Вставил предложенный кусок но не UTF8 а CP1251. Конвертнул базу в CP1251 https://artkiev.com/blog/mysql-cp1251-to-utf8.htm. Тут правда обратный вариант описан, но cp1251 подставляем в место utf8. Как вариант для тех кто не может поменять хостинг, а договориться с тех поддержкой не получается. Это не спасает от "отсутствующих" элементов админки Информация и Импорт. Они есть просто не отображаются. Но теперь норм сохраняются товары категории и т.д. с буквами "И" и "ш"


Спасибо. Помогло именно это решение.