【问题标题】:converting special characters with html_entity_decode not working使用 html_entity_decode 转换特殊字符不起作用
【发布时间】:2016-06-02 13:32:44
【问题描述】:

我有一个 php 站点,我将一些数据导出到 pdf 文件中。该网站使用 fpdf 创建 pdf 文件,但某些特殊字符在创建的 pdf 文件中没有正确显示。

棘手的是一些特殊字符可以正确打印,而另一些则不能。该站点的 default_charset 为“iso-8859-1”,php 文件以“ANSI”编码。我还用信息(我从数据库中获得)打印了数组,没关系。所以,我想这与fpdf有关?但奇怪的是,相同的特殊字符在某些地方打印正确,而在其他地方打印不正确。

谢谢你:)

编辑:

我发现在这段代码中字符串编码错误:

foreach ($this->relatorioData['Roteiro'] as $label => $value) {
            $this->Cell(55, 4, html_entity_decode($label), 0, 0, 'L', false);
            $this->Cell(95, 4, html_entity_decode($value), 0, 1, 'L', false);
        }

在 html_entity_decode 之前,这些字符串都没有问题,其中只有一些字符串丢失了特殊字符。你知道什么可以做到这一点吗?我应该使用其他方法吗?

【问题讨论】:

    标签: php character-encoding decode fpdf decoder


    【解决方案1】:

    我在使用 FPDF 时也遇到了类似的问题。在发现这实际上是在FPDF FAQ 中解决之前,我进行了全面搜索(撰写本文时的问题/答案 3)。根据个人的需要,那里有许多潜在的解决方案。引用的选项有:

    【讨论】:

      【解决方案2】:

      嗯,我找到了答案。我需要改变这个:

      html_entity_decode($text)
      

      到这里:

      html_entity_decode($label, ENT_COMPAT, 'ISO-8859-1')
      

      这样我所有的字符串都被正确解码了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-23
        • 2019-08-02
        • 1970-01-01
        • 1970-01-01
        • 2012-07-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多