Php TCPDF-显示为菱形问号的特殊字符(如:•;)

Php TCPDF-显示为菱形问号的特殊字符(如:•;),php,pdf,utf-8,fonts,tcpdf,Php,Pdf,Utf 8,Fonts,Tcpdf,我知道TCPDF支持特殊字符和多种语言。我已经尝试了所有提供的字体。我想生成UTF-8格式的PDF。我知道包含的字体“freeserif”肯定包含有问题的字符。“•” 以下是我当前的构造函数调用: $pdf=new MYPDF('p','mm','Letter',true',UTF-8',false) 以下是正在生成的角色的示例: $this->Cell(80,6.35,“•$POST[reportTitle]”,0,0,'L',true) 我还尝试用html代码替换字符: •如图所示

我知道TCPDF支持特殊字符和多种语言。我已经尝试了所有提供的字体。我想生成UTF-8格式的PDF。我知道包含的字体“freeserif”肯定包含有问题的字符。“•”

以下是我当前的构造函数调用:

$pdf=new MYPDF('p','mm','Letter',true',UTF-8',false)

以下是正在生成的角色的示例:

$this->Cell(80,6.35,“•$POST[reportTitle]”,0,0,'L',true)

我还尝试用html代码替换字符:

如图所示:

将TCPDF构造函数上的
$unicode
参数设置为
false
,将
$encoding
参数设置为
'ISO-8859-1'
或其他字符映射

将帮助您:

UTF-8 unicode的默认值:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
欧洲字符集的构造函数示例:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);

$POST[reportTitle]
实际上是
$\u POST[reportTitle]
?我不知道是否可以将内容注入PDF(JavaScript?)中,但如果您接受用户输入,则在将其放入之前,可能值得确保它未被污染。不,$POST是我自己构建的一个数组,它包含返回页面的$POST数组。它没有发布到PDF,我在$\u会话中传递它。抱歉搞混了,我没想到要指出这一点!啊,酷。应该是
$POST['reportTitle']
,以避免出现警告。我同意,但有时它在参数中会混淆PHP。不知道为什么。试着用大括号将其全部括起来(无论如何,tbh):
“•{$POST['reportTitle']}”
-问题可能是外部语音标记和内部撇号之间的混淆-确保内部集是撇号而不是语音标记。是的,我已经尝试过@adrien,但我再次尝试,只是为了再次检查它。这使得所有字符=框,像这样:[]但实际上是矩形。有趣的是,如果我将框粘贴在这里,我们会看到它将作为另一种语言出现:牥灯 所以它只是错误地生成了它。你所有的PHP代码文件都是用UTF-8编码的吗?(例如,用记事本++检查)+如果使用UTF-8,您的mysql连接是UTF-8吗?MySQL表的编码(如果有的话)如何?等等…好主意,试过并重新生成。刷新所有数据并发布新数据,但结果仍然相同:(请稍后检查mysql连接。)