Наличие символов æøå в кодировке HTML2PDF

$content = "ÆØÅ";
$html2pdf = new HTML2PDF('P', 'A4', 'en');
$html2pdf->writeHTML($content, false)

$html2pdf->Output('', 'S'));

Дает мне файл PDF с "ÆØÃ"

Я проверил кодировку в html2pdf.class.php, и она установлена ​​​​в UTF-8, что должно быть в порядке.

Я попытался изменить «en» на «da» (датский), все тот же результат.

Как я могу исправить это, пожалуйста? Потратил часы, теперь ищу ..


person Karem    schedule 04.09.2011    source источник
comment
для меня изменение шрифта помогло, поскольку библиотека шрифтов, которую я использовал, не имеет юникода для других языков.   -  person anuj arora    schedule 30.08.2018


Ответы (3)


Вы должны сделать две вещи, чтобы увидеть странные символы UTF8 в html2pdf:

  1. Установите кодировку 'UTF-8', как уже предложил Эрик.
  2. Используйте единственный шрифт UTF-8 в html2pdf: freeserif

Я знаю, что это старый вопрос, но мне нужно несколько очков :)

person Vladan    schedule 30.04.2015
comment
Просто чтобы уточнить, оберните объект html для символа, который вам нужен € для €, £ для £ и т. д. ‹span style='font-family: freeserif'›€‹/span› Как объяснено здесь github.com/spipu/html2pdf/edit/master/examples/utf8.php - person DariusLau; 24.02.2017
comment
Это просто исправление моего, но с метатегом html. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> - person mcanvar; 15.06.2017

Похоже, вы указываете неправильную кодировку вывода. Вывод типичен для того, что вы получите, например, если попытаетесь отобразить вывод UTF-8 как ISO8859-1.

Похоже, конструктор HTML2PDF также имеет версию, которая принимает кодировку символов в качестве параметра:

$html2pdf = new HTML2PDF('P','A4','da', true, 'UTF-8');

может работать...

person Erik A. Brandstadmoen    schedule 04.09.2011
comment
@ErikABrandstadmoen не сработало, и я изменил этот параметр кодировки на UTF-8 .. Все равно ничего .. Есть ли другие места, где вы можете изменить кодировку? или, может быть, сами библиотеки PDF принимают только iso-8859? - person Karem; 05.09.2011
comment
Я тоже ищу решение той же проблемы. Я пробовал выше, но это не работает. - person ; 10.02.2014

Вы можете использовать эту функцию PHP

utf8_decode($article_content);

Если это не сработает, единственным решением будет создание str_replace()

$content = "ÆØÅ"; 
$code_html = array("&AElig;","&Oslash;","&Aring;");
$caract_sp = array("Æ","Ø","Å");
str_replace($code_html, $caract_sp, $content);

Для любых других специальных символов вы можете увидеть эквиваленты HTML-кодов здесь: http://www.toutimages.com/codes_caracteres.htm

person Antoine Subit    schedule 10.12.2013