[Решено] Проблема с кодировкой

Тема в разделе "OpenCart", создана пользователем five555, 21 мар 2014.

Статус темы:
Закрыта.
  1. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    248
    Симпатии:
    150
    Проблема такая: текст пишет нормально, но когда сокращает в модуле описание товара возникает проблема с кодировкой.
    Пример: "Портативный навигатор с сенсорн�.."
    Помогите разобраться плз.
     
  2. Alexander74747

    Alexander74747

    Регистрация:
    9 ноя 2012
    Сообщения:
    5
    Симпатии:
    2
    Замените в модуле код на данную конструкцию (сократит до последнего пробела и постави точки, кол-во сивомолов в примере 60):
    <?php
    Код:
    $var = 'Привет Робот сегодня здесь быал не раз и не два и целуой сотни мало';
    //trim message to 100 characters, regardless of where it cuts off
    $msgTrimmed = mb_substr($var,0,60);
    //find the index of the last space in the trimmed message
    $lastSpace = strrpos($msgTrimmed, ' ', 0);
    //now trim the message at the last space so we don't cut it off in the middle of a word
    echo mb_substr($msgTrimmed,0,$lastSpace).'...';
    ?>
    Привет Робот сегодня здесь быал не раз и не два и целуой...
     
  3. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    248
    Симпатии:
    150
    Подскажите что именно заменить? Вот код модуля:
     
  4. web2us

    web2us

    Регистрация:
    10 мар 2013
    Сообщения:
    18
    Симпатии:
    1
    если не указано mb_internal_encoding( 'UTF-8' ); или указано с ошибкой:
    Код:
    'description' => mb_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 60, 'UTF-8') . '..',
    а так хотелось бы понять в какой кодировке строка поступает?
     
    five555 нравится это.
  5. five555

    five555

    Регистрация:
    18 янв 2014
    Сообщения:
    248
    Симпатии:
    150
    Что для этого надо?
    БД в UTF-8 без BOM., проверил именно описание товара - в той же кодировке.
    (прошу прощения за неграмотность - я новичок в этих вопросах)
    --- Добавлено, 22 мар 2014 ---
    Закинул в модуль mb_internal_encoding( 'UTF-8' ); после <?php и всё стало работать как положено.
    Я правильно сделал?
     
    Последнее редактирование: 22 мар 2014
  6. web2us

    web2us

    Регистрация:
    10 мар 2013
    Сообщения:
    18
    Симпатии:
    1
    можно и так,
    mb_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 60, 'UTF-8')
    говорит что утф-8 в частности применить
     
Статус темы:
Закрыта.