我生成的PDF中的奇怪字符

时间:2010-05-20 07:00:20

标签: php mysql pdf string

我的PDF中有个字符,我已经删除了\ r \ n \ r \ n \ t,修剪了所有内容,解码了html实体和剥离标记。什么都没有帮助。数据来自MySQL数据库。

任何帮助都将不胜感激。

7 个答案:

答案 0 :(得分:2)

在添加到pdf之前检查字符串编码(使用mb_detect_encoding),它是unicode字符串吗? MySQL数据库中的数据可以是unicode,但您的数据库连接可以使用其他编码。

答案 1 :(得分:0)

你尝试过使用utf8_decode()吗? http://php.net/manual/en/function.utf8-decode.php

答案 2 :(得分:0)

您可能正在使用不可用的字体。

答案 3 :(得分:0)

尝试这样的方法来确定其数值并替换它:

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

<强>输出:

Hello [removed] World

答案 4 :(得分:0)

你试过吗

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

应该显示哪些字符而不是那些字符?

答案 5 :(得分:0)

FPDF不支持unicode字符,因此可能是您遇到问题的原因。您可以在http://acko.net/node/56尝试扩展,或者您可以切换到另一个PDF生成器库(我建议TCPDF)。

或者你可以尝试使用iconv将文本从UTF-8转换为支持的字符集(即$str = iconv('UTF-8', 'windows-1252', $str);),如果你想坚持使用FPDF。

答案 6 :(得分:0)

看起来是从Microsoft Word复制/粘贴文本时发生的结果。 PDF文件是否包含来自MS Word文档的文本?那可能是你的问题。在PHP.net网站上有一些有趣的注释用于在PHP中转换和剥离这些字符:http://www.php.net/manual/en/function.strtr.php#39383

我只假设它是PDF文件中的MS Word字符。