【问题标题】:FPDF Character encodingFPDF 字符编码
【发布时间】:2019-06-23 01:56:00
【问题描述】:

我在 SO 上看到了很多关于在 FPDF 的帮助下在 PHP 中生成 PDF 的问题,以及许多关于编码的问题。我的母语是斯洛伐克语,到目前为止我发现我应该使用 ISO-8859-2 编码。我尝试通过

将 UTF-8 转换为 ISO-8859-2
iconv('utf-8', 'ISO-8859-2', $text)

但 fpdf 会抛出无法识别某些字符的错误。

我正在尝试生成一些这样的文本

$pdf->Cell(0, 0, self::text('ZÁKAZNÍK'), '', '', 'L');


    function text($text)
    {
//        return $text;
//        return mb_convert_encoding($text, 'ISO-8859-1', 'UTF-8');
        return iconv('utf-8', 'cp1252', html_entity_decode($text));
    }

有什么想法吗?它应该适用于 (ľščťžýáíéôúä) 之类的角色

【问题讨论】:

    标签: php pdf-generation fpdf


    【解决方案1】:

    改用这个:

    iconv('UTF-8','iso-8859-2//TRANSLIT//IGNORE',$text);

    应该可以的。

    【讨论】:

    • 不,仍然无法正常工作。我有一次成功的尝试,使用 translit 但我不想使用音译,因为它可以将单词的含义改变 180 度,所以这有点危险:)
    • ISO-8859-2 包含所有斯洛伐克语字符,因此 translit 不可能将 UTF8 中正确书写的斯洛伐克语文本更改为不同的内容,如果仍然不起作用,则说明您的字体不包含这些字符,您必须自己通过$fpdf->AddFont() 导入正确的字体。没有别的办法。
    • 您关于使用 AddFont 的评论对我有帮助,虽然我也使用 tFPDF 而不是原来的 fpdf 实现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    相关资源
    最近更新 更多