php - dompdf字符编码UTF-8

标签 php utf-8 character-encoding dompdf

我试图用正确的字符创建 pdf,但有“?”字符。 我创建了一个测试 php 文件,我试图在其中找到最佳解决方案。如果我在浏览器中打开 html,我看起来不错

UTF-8 --> UTF-8 : X Ponuka číslo € černý Češký 

但是当我查看 pdf 时,我看到了这个

UTF-8 --> UTF-8 : X Ponuka ?íslo € ?erný ?ešký 

这是我的全部代码:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>č s š Š</title>
</head>
<body>
<?php 

require_once("dompdf/dompdf_config.inc.php");
$tab = array("UTF-8", "ASCII", "Windows-1250", "ISO-8859-2", "ISO-8859-1", "ISO-8859-6", "CP1256"); 
$chain = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style></style><title>č s š Š</title></head><body>';
foreach ($tab as $i) 
    { 
        foreach ($tab as $j) 
        { 
            $chain .= "<br> $i --> $j : ".iconv($i, $j, 'X Ponuka číslo € černý Češký <br>'); 
        } 
    } 
$chain .= '<p style="font-family: firefly, verdana, sans-serif;">??????X Ponuka číslo € černý Češký <br></p></body></html>';
echo $chain; 
echo 'X Ponuka číslo € černý Češký <br>'; 

$filename = 'pdf/_1.pdf';
$dompdf = new DOMPDF();
$dompdf->load_html($chain, 'UTF-8');
$dompdf->set_paper('a4', 'portrait'); // change these if you need to
$dompdf->render();
file_put_contents($filename, $dompdf->output());

?> 
</body>
</html>

我做错了什么?我尝试了很多我发现的选项 :( 知道吗?

最佳答案

您应该阅读 Unicode How-to再次。主要问题是您没有指定支持字符的字体。看起来您已经阅读了操作方法,因为您正在使用该文档中的字体示例。然而,该示例并不意味着在全局范围内适用于任何文档,默认情况下 dompdf 不包括 firefly(一种汉字字体)或 Verdana。

如果您不指定字体,则 dompdf 会回退到仅支持 Windows ANSI 编码的核心字体之一(Helvetica、Times Roman、Courier)。因此,请始终确保使用支持 Unicode 编码并具有您需要显示的字符的字体设置文本样式。

在 dompdf 0.6.0 中,您可以使用包含的 Deja Vu 字体。所以下面应该工作(只是 HTML):

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style>
  body { font-family: DejaVu Sans, sans-serif; }
</style>
<title>č s š Š</title>
</head>
<body>
  <p>??????X Ponuka číslo € černý Češký <br></p>
</body>
</html>

关于php - dompdf字符编码UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16384517/

相关文章:

php - UploadedFile 的文件上传 mime 类型问题

php - Yii 2.0 : Sorting on column in a GridView

php - 我怎样才能让我的 curl 在抓取之前等待几秒钟?

ruby - 如果文件名在 Windows 上具有 unicode 字符,Ruby 1.9.1 能否最终获得文件名列表?

mysql - 如何在 mySQL 数据库中存储所有欧洲语言的名称?

PHP 邮件 : Sending ÅÄÖ characters?

ubuntu - Ubuntu 中的 UTF8 支持

php - JQWidgets 组合框键入的值未回显或提交到数据库

java - 如何配置Spring Boot应用程序以支持UTF-8和GBK编码?

ios - 在xcode上反向复制阿拉伯语?