dompdf 字符编码 UTF-8

2024-06-28

我正在尝试使用正确的字符创建 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 操作方法 https://github.com/dompdf/dompdf/wiki/UnicodeHowTo再次。主要问题是您没有指定支持您的字符的字体。您似乎已经阅读了操作方法,因为您正在使用该文档中的字体示例。然而,该示例并不意味着全局适用于任何文档,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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dompdf 字符编码 UTF-8 的相关文章

  • Active Record 库的 CodeIgniter 挂钩

    我需要一些帮助来理解 CodeIgniter 的钩子逻辑 以使代码适应我的需要 这一页 https www codeigniter com user guide general hooks html https www codeignite
  • UNION SELECT - 循环?还是单个查询?

    如果我使用 UNION 从数据库中进行多个 SELECT 是否被视为一个查询 或多个查询 SELECT column name s FROM table1 UNION SELECT column name s FROM table2 这是否
  • 如何获得DiVs等级?

    html div class div class p strong span style color FF0000 Content1 span strong p p style text align center Content2 img
  • php 32位日期解析1901年12月13日之前的日期

    我很高兴使用strtotime http www php net manual en function strtotime php在我的开发机器上解析日期 其中一些日期是 1800 年代 一个极端的例子是 1500 年代 但我的开发机是64
  • PHP 中的金字塔星号

    请看我的代码 for row var row gt 1 row for j 0 j lt row j echo echo echo nbsp Output 但我需要输出如下 您可能想查看一些字符串函数
  • PHP 电子邮件编码?

    我在发送电子邮件时遇到外来字符问题 有人可以建议我该怎么做吗 我怀疑问题可能是以下三件事之一 html页面编码不正确 这会影响表单中的 POST 数据吗 邮件功能没有任何编码 因此程序不知道如何读取它 最有可能的 文件本身没有正确的编码 因
  • 如何检查 PHP 数组是关联数组还是顺序数组?

    PHP 将所有数组视为关联数组 因此没有任何内置函数 任何人都可以推荐一种相当有效的方法来检查数组是否 是一个列表 只包含从0开始的数字键 基本上 我希望能够区分这一点 sequentialArray apple orange tomato
  • 是 header('Content-Type:text/plain');有必要吗?

    我还没有看到有或没有这个头部信息有什么区别 定义 必要 如果您希望浏览器这样做 这是必要的know文件的类型是什么 PHP 自动设置Content Type标头至text html如果您不覆盖它 那么您的浏览器会将其视为不包含任何 HTML
  • C++11 正则表达式是否适用于 UTF-8 字符串?

    如果我想将 C 11 的正则表达式与 unicode 字符串一起使用 它们是否可以将 char 作为 UTF 8 使用 还是必须将它们转换为 wchar t 字符串 您需要测试您的编译器和您正在使用的系统 但理论上 如果您的系统具有 UTF
  • Split() 已弃用 [重复]

    这个问题在这里已经有答案了 可能的重复 PHP 拆分替代方案 https stackoverflow com questions 2813241 php split alternative Successful geocode geocod
  • 致命错误:嵌套级别太深 - 递归依赖?

    我有一个复杂的嵌套对象层次结构 所有子对象 在父类中存储了一个对象数组 都包含链接回其父级的属性 相当简单明了 没有真正的问题 如果我对层次结构中的任何对象执行 var dump 我将在转储中获得递归引用 正如我所期望的那样 FIRSTGE
  • 通过 WooCommerce 注册时将完整的电子邮件地址设置为用户名

    设置 帐户下的 WooCommerce 有一个名为 根据客户电子邮件自动生成用户名 但它生成的用户名不是完整的电子邮件地址 email protected cdn cgi l email protection becomes myemail
  • 将数组项合并到字符串中[重复]

    这个问题在这里已经有答案了 如何将所有数组项合并为一个字符串 Use the implode功能 http php net manual en function implode php 例如 fruits array apples pear
  • 使用PHP检测哪个htaccess用户登录?

    我正在构建一个上传功能 以便我认识的人可以安全 轻松地向我发送文件 但我想这样设计 当我的一个朋友用their登录 这将是 htaccess登录 我可以在 PHP 中建立该文件并将其文件记录到与其帐户关联的数据库中 简而言之 我需要 PHP
  • 使用 php 脚本从不同网站读取文件

    如何从完全不同的服务器读取文件的内容 然后显示内容 我稍后将更改代码以正确地使用返回的信息 您可以使用file get contents http php net file get contents or cURL http php net
  • 使用 PHP 连接到 MSSQL Server 2008

    我们在 Windows Server 2008 R2 上使用 MS SQL Server 2008 并已安装Apache 2 2 19 and PHP 5 2 17 分别地 我们已经安装了 PHP 的 MSSQL 模块并使用以下连接字符串
  • 可以用 PHP 设置表单字段值吗?

    我使用 GET 函数从 url http index html variable value 中提取一个带有 php 的值 这是基本的东西 但是 我需要在我的表单中使用该值 通常 我会设置 或类似的东西 但是 我无法使用我正在使用的编辑器在
  • 将画布图像保存到服务器

    我正在尝试将画布图像保存到服务器 我可以保存文件 但它始终是 0 字节 我的代码有什么问题吗 php
  • php 字符串与通配符 * 匹配?

    我想提供将字符串与通配符匹配的可能性 Example mystring dir folder1 file pattern dir file stringMatchWithWildcard mystring pattern gt Return
  • argv 和 argc 未定义或为 null

    当我在 construct 中尝试这个时 var dump argc var dump argv var dump SERVER argv 它返回错误 未定义的变量 argc 和未定义的变量 argv 和数组 大小 0 空 当我在全局中声明

随机推荐