неправильный символ экспортирован в fpdf ... - как? ..? - PullRequest
5 голосов
/ 09 января 2011

Я не знаю, в чем проблема, но всякий раз, когда я вызываю букву - из функции $ _POST она помещается в мой fpdf как ... Любая идея, почему?

Ответы [ 4 ]

5 голосов
/ 09 января 2011

Ваша строка имеет неправильную кодировку.Это UTF-8, но я думаю, что вам нужно Latin-1 или около того ..

Вы можете использовать utf8_decode () для ваших строк:

echo utf8_decode("ñ"); // prints ñ
2 голосов
/ 10 февраля 2012

Я тоже потратил немало времени, пытаясь заставить это работать, и подумал, что следующее объяснение может быть полезным для других.

Нет необходимости писать свои собственные сложные функции, если единственной проблемой является £/€ или похожий символ.

Вот что я использовал (взято из этой и других тем в сети): -

$pdf->SetY(220); // set the y co-ord before output //
$monthlyRent = utf8_decode("£" . number_format($monthlyRent, 2)); // 2 dec places //
// previously $monthlyRent is pulled from the MySql db as $array['_monthlyRent'];
$pdf->Write(5,'Gross monthly rent: ' . $monthlyRent); // outputs £980 or whatever. //

Работает угощение, но делает не забудьте сделать number_format($yourval, 2) в той же строке, что и utf8_decode();, или он облажается!

Надеюсь, это поможет некоторым беднягам, которые, как и я, боролись в течение нескольких часов!

2 голосов
/ 09 января 2011

Альтернативным решением было бы расширение FPDF с поддержкой Unicode (UTF-8). Для этого есть патч: http://acko.net/node/56

1 голос
/ 09 января 2011

У нас была проблема один раз, и мы использовали

utf8_decode("foo bar");

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

header("Content-type: application/pdf; charset=utf-8");
...