【问题标题】:FPDF with iconv from utf8mb4带有来自 utf8mb4 的 iconv 的 FPDF
【发布时间】:2015-06-08 15:33:31
【问题描述】:

我有一个来自 MySql DB 的字符串,以 utf8mb4 编码。我正在为 PHP 渲染一个带有 FPDF 的 pdf,我尝试用 iconv 转换它:

iconv('utf8mb4', 'cp1252',$myString);

这无法告诉我“注意:iconv():错误的字符集,不允许从 utf8mb4' tocp1252' 进行转换”。 如果我尝试使用

iconv('utf-8', 'cp1252',$myString);

我收到“通知:iconv():在输入字符串中检测到非法字符”。

如果没有 iconv,我会得到多个 ascii 字符来代替特殊字符,这不好。

有什么方法可以正确输出这个值吗?

【问题讨论】:

  • 看起来你在utf8之后错过了'
  • 原始代码中不存在错字 - 有问题已更正
  • 我认为这可能会有所帮助stackoverflow.com/questions/16893035/…
  • 你检查过$myString是utf8编码的吗?
  • $myString 来自使用 utf8mb4 字符集的 mysql 表上的选择,在使用 utf8mb4 建立的连接上:db->set_charset("utf8mb4")

标签: php character-encoding fpdf utf8mb4


【解决方案1】:

试试这个来忽略字符集中不允许的字符

iconv('utf-8', 'cp1252//IGNORE',$myString);

【讨论】:

  • 这只会跳转“奇怪”字符,不能正确表示它们
【解决方案2】:

我试过了,没用。我通过使用允许 utf8 的 FPDF 版本解决了这个问题:TFPDF。只要您添加它的新字体 (ttf),它就完全兼容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2013-02-22
    • 2022-09-25
    • 2020-10-12
    • 1970-01-01
    相关资源
    最近更新 更多