首页 > 解决方案 > mpdf php库不显示英镑货币符号£

问题描述

我正在使用 mPDF php 库创建付款收据 PDF 文件,我在金额中使用英镑货币符号。

生成 PDF 后,它会显示ÂŖ符号而不是 £。我已经在文档中添加了 UTF-8 字符编码。

任何人都遇到过同样的问题,请让我知道它的解决方案。

重现它的示例代码如下所示。您可以在GitHub url下载或克隆 mPDF 库。

    require_once '/inc/mpdf/vendor/autoload.php';
    $mpdf = new \Mpdf\Mpdf(['tempDir' =>  '/inc/mpdf/tmp']);
    $mpdf->allow_charset_conversion = true;
    $mpdf->charset_in = 'iso-8859-4';


    $mpdf->SetDisplayMode('fullpage');
    $mpdf->list_indent_first_level = 0;
    $mpdf->SetTitle('Transparent hands Tax Receipt');


    $html ="Total Amount £ 45,00";
    $mpdf->WriteHTML($html);
    $mpdf->Output('Tax Receipt.pdf', 'D');
    if (!$mpdf->send()) {
        throw new Exception('Could not create Tax Receipt: '.$mpdf->getError());
    }
    die();

上面代码的输出如下所示。预期结果应该是总金额 £ 45,00

总金额 Ŗ 45,00

标签: character-encodingmpdf

解决方案


您的代码可能是 UTF,删除

$mpdf->charset_in = 'iso-8859-4';

线。£字符不能在 中表示iso-8859-4

使用上述设置,mPDF 会尝试将字符从iso-8859-4UTF 重新编码,这会导致井号被破坏为ÂŖ.

或者,使用 HTML 实体£而不是£字符 - 所有编码都应该是安全的。


推荐阅读