Как установить mpdf HTML содержит недопустимый символ UTF-8

как установить mpdf HTML содержит недопустимые символы UTF-8 при создании pdf на ваших приложениях

Ответ 1

Попробуйте это

$html = mb_convert_encoding($html, 'UTF-8', 'UTF-8');

перед вызовом: "$ mpdf- > WriteHTML ($ html);"

Кажется бессмысленным, но он работает для меня.

Ответ 2

С mpdf нет смысла конвертировать и кодировать, поскольку они, скорее всего, потеряют ваши символы, и вы получите только "?". или другие неузнаваемые символы (но даст выход)

Попробуйте использовать их перед тем, как любой вход будет отправлен в mpdf:

$mpdf->allow_charset_conversion=true;
$mpdf->charset_in='UTF-8';

Ответ 3

Используйте функцию utf8_encode(). Например: $ html = '

Название оригинатора

Адрес инициатора

Номер телефона инициатора

Оригинальный адрес электронной почты

Заемщик

Адрес свойства

Дата GFE

  Â

'; $ html = utf8_encode ($ html1);

Ответ 4

Ниже две строки сделают трюк

$mpdf->allow_charset_conversion = true;
$mpdf->charset_in = 'iso-8859-4';

Добавьте две вышеуказанные строки после создания объекта, это будет выглядеть как

$mpdf=new mPDF();
$mpdf->allow_charset_conversion = true;
$mpdf->charset_in = 'iso-8859-4';

Ответ 5

Это работает для меня:

$mpdf->WriteHTML(utf8_encode($html));

Ответ 6

Я получил эту ошибку, когда отправил NULL в ->multicell(). Отправка "" исправлена.

старый вопрос, но, возможно, кто-то приходит сюда из Google, как я сделал

Ответ 7

После нескольких часов потянув за волосы, это творило чудеса для меня :)

(В моем случае बोटोक्स показывался как??????)

$mpdf-> SetAutoFont();

$mpdf = new mPDF('utf-8','', 0, '', 15, 15, 16, 16, 9, 9, 'L');
$mpdf->SetAutoFont();

//~ Nothing of below worked :(
//~ $mpdf->useLang = true;
//~ $mpdf->autoScriptToLang = true;
//~ $mpdf->autoLangToFont = true;
//~ $pdf_html = mb_convert_encoding($html, 'UTF-8', 'UTF-8');

$mpdf->WriteHTML($html);
//~ $mpdf->DeletePages(2);
$filename   = date('ymdhis').".pdf";
$mpdf->Output($filename,'D');

Мой PDF содержал смесь английских и хинди слов, таких как

"3 единицы बोटोक्स по цене $ 10,00/единица".

Ответ 8

Я на 99% уверен, что проблема в том, что вы сделали некоторые манипуляции с текстом, используя небезопасные функции Юникода. Используйте mb_strpos()/mb_substr() вместо strpos()/substr() и добавьте модификатор " /u " во все ваши преобразования с помощью prog_replace().

Конечно, проблему можно решить, разрешив "преобразование кодировки", как уже предлагалось ранее. Но гораздо лучше знать, что ваш текст уже правильный и соответствует требованиям UTF-8.