fpdf.php utf8 частичная проблема кодировки

Тема в разделе "PHP", создана пользователем Maximke, 7 дек 2015.

Модераторы: latteo
  1. Maximke

    Maximke Постоялец

    Регистр.:
    22 июл 2015
    Сообщения:
    117
    Симпатии:
    7
    Opencart 1.5.6.4. модуль
    Оплата по безналичному расчёту с использованием FPDF. В счете использую латышский язык - пробема с кодировкой. Для решения проблемы использовал $txt = iconv('utf-8', 'cp1257', $txt); - помогло, но частично... Пропало название товара и имя покупателя, как только убираю это строку все становится как раньше закорючками.. При смене локали в этой строку так же возвращается все с закарючками разными... Не могу понять и уже не знаю, что и пробовать что-бы все отоброжалось нормально... Не знаю какие еще подробности написать, что-бы могли подсказать...

    Код:
    there is a really simple solution for this problem.
    
    In the file fpdf.php go to the line that says:
    
    if($txt!=='')
    {
    It is line 648 in my version of fpdf. Insert the following line of code:
    
    $txt = iconv('utf-8', 'cp1252', $txt);
    (above the line of code)
    
    if($align=='R')
    This works for all German special characters and should also work for Greek special characters. Otherwise simply replace cp1252 with the respective alphabet you require. You can see all supported characters here: http://en.wikipedia.org/wiki/Windows-1252
    
    I saw the solution here: http://fudforum.org/forum/index.php?t=msg&goto=167345 Please use my example code above, as the original author forgot to insert a dash between utf and 8.
    
    Hope the above was helpful.
    
    Daan
    
    Самое странное, что имя и товар не отоброжаются, а адресс отображается..
     
    Последнее редактирование модератором: 8 дек 2015
  2. Zmeyonish

    Zmeyonish Создатель

    Регистр.:
    29 мар 2013
    Сообщения:
    10
    Симпатии:
    0
    вначале выясни кодировку "закорючек" - попереключай выбор кодировки в браузере, например
     
  3. Gameer

    Gameer Постоялец Нарушитель

    Регистр.:
    25 апр 2014
    Сообщения:
    99
    Симпатии:
    65
    PHP:
    $txt mb_convert_encoding($txt'UTF-8');
    Для этого используем функцию которая работает с многобайтными строками
     
  4. Maximke

    Maximke Постоялец

    Регистр.:
    22 июл 2015
    Сообщения:
    117
    Симпатии:
    7
    Чуть по подробней пожалуйста... :)
     
  5. Gameer

    Gameer Постоялец Нарушитель

    Регистр.:
    25 апр 2014
    Сообщения:
    99
    Симпатии:
    65
    Для конвертации в нужную кодировку таких символов лучше использовать функцию которая работает с многобайтными строками --> http://php.net/manual/ru/function.mb-convert-encoding.php