Page 1 of 1

Проблем с енкодинга на кирилица OC 3.0.2.0

Posted: Tue Aug 20, 2019 3:54 pm
by mupcku
Здравейте!
Ще прикача скрийн шот, който демонстрира много странен проблем. Появяват се въпросителни в имената на продуктите на product grid, както на начална така и в страници на категории. Всички language файлове са с UTF-8 without BOM. Не успявам да дебъгна проблема. Някой има ли идея от къде може да се получава това?
https://prnt.sc/ouz7t8

Re: Проблем с енкодинга на кирилица OC 3.0.2.0

Posted: Wed Aug 21, 2019 11:26 pm
by agatha65
Да, това се случва при някои темописатели. Има проблем с мултибайтовата кодировка.
Виж как е отрязано в дескрипшъна и го приложи за името
https://github.com/opencart/opencart/bl ... tegory.php

Code: Select all

'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..',
ако не помага помисли за mb_substr

Re: Проблем с енкодинга на кирилица OC 3.0.2.0

Posted: Thu Aug 22, 2019 2:23 pm
by mupcku
Всъщност, за да бъда максимално полезен, нека да постна тук решението, което открих, абсолютно подобно на това на Agatha
Смених този код:

Code: Select all

$c_words = 100;
				
$result['name'] = strlen($result['name']) > $c_words ? substr($result['name'],0,$c_words)."..." : $result['name'];
С този:

Code: Select all

$c_words = 100;
				
$result['name'] = strlen($result['name']) > $c_words ? mb_substr($result['name'],0,$c_words, "utf-8")."..." : $result['name'];
Именно кодировката на кирилицата беше недообмислена от страна на темата.

Re: Проблем с енкодинга на кирилица OC 3.0.2.0

Posted: Thu Sep 12, 2019 3:48 pm
by apartamenti
Решението беше полезно и за мен. Благодаря!