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

解决方法

您的代码可能是UTF,请删除

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

行。 £不能用iso-8859-4表示。

使用上面的设置,mPDF尝试将字符从iso-8859-4重新编码为UTF,这导致井号被压成ÂŖ

或者,使用HTML实体£代替£字符-所有编码都应该安全。