странные символы в моем сгенерированном PDF - PullRequest
3 голосов
/ 20 мая 2010

Я получаю ???? символов в своем PDF, я удалил \ r \ n \ r \ n \ t, обрезал все, декодировал html-объекты и теги. Ничего не помогает Данные поступают из базы данных MySQL.

Любая помощь будет оценена.

Ответы [ 7 ]

2 голосов
/ 21 мая 2010

Проверьте кодировку строки (с mb_detect_encoding) перед добавлением в pdf, это строка в кодировке Юникод? Данные в MySQL DB могут быть в Unicode, но ваше соединение DB может использовать другую кодировку.

0 голосов
/ 21 мая 2010

Похоже, результат того, что происходит, когда вы копируете / вставляете текст из Microsoft Word. Содержит ли файл PDF текст из документа MS Word случайно? Это может быть вашей проблемой. На сайте PHP.net есть несколько интересных комментариев для преобразования и удаления этих символов в PHP: http://www.php.net/manual/en/function.strtr.php#39383

Я только предполагаю, что в вашем файле PDF есть символы MS Word.

0 голосов
/ 20 мая 2010

FPDF не поддерживает символы Юникода, поэтому это может быть причиной вашей проблемы. Есть расширение, которое вы можете попробовать на http://acko.net/node/56, или вы можете переключиться на другую библиотеку PDF-генератора (я рекомендую TCPDF ).

Или вы можете попробовать использовать iconv для преобразования текста из UTF-8 в поддерживаемый набор символов (т. Е. $str = iconv('UTF-8', 'windows-1252', $str);), если вы хотите придерживаться FPDF.

0 голосов
/ 20 мая 2010

Вы пробовали

$string = "testContainingSpecialCharsäöüöüäüß";
$pdf->Cell(0,0,$string);

Какие символы должны были отображаться вместо этих ???? вещей?

0 голосов
/ 20 мая 2010

Попробуйте что-то вроде этого, чтобы определить его числовое значение и заменить его:

$str = 'Hello ? World';
echo str_replace(chr(ord('?')), '[removed]', $str);

Выход:

Hello [removed] World
0 голосов
/ 20 мая 2010

Возможно, вы используете шрифт, который недоступен.

0 голосов
/ 20 мая 2010

Вы пытались использовать utf8_decode ()? http://php.net/manual/en/function.utf8-decode.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...