【问题标题】:Zend_Pdf UTF-8 characters?Zend_Pdf UTF-8 字符?
【发布时间】:2010-06-18 09:03:58
【问题描述】:

我在使用 Zend_Pdf 将 UTF-8 字符输出到 pdf 文件时遇到问题。这是我的代码:

// Load Zend_Pdf class 
include 'Zend/Pdf.php';

// Create new PDF 
$pdf = new Zend_Pdf();

// Set font 
$page->setFont(Zend_Pdf_Font::fontWithPath('fonts/times.ttf'), 12); 

// Draw text 
$page->drawText('Janko Hraško', 200, 643, 'UTF-8');

I§m 加载的字体支持 UTF-8 字符。但是我收到了这个错误”

注意:iconv() [function.iconv]:在第 241 行的 D:\data\o\Zend\Pdf\Resource\Font\Type0.php 中检测到输入字符串中有非法字符

【问题讨论】:

    标签: zend-framework php iconv


    【解决方案1】:

    使用 Helvetica 字体,您的代码可以正常工作!

    【讨论】:

    • 我终于通过使用 Windows-1250 而不是 UTF-8 解决了这个问题,但是谢谢... +1
    【解决方案2】:

    已解决:

    $page->drawText('Janko Hraško', 200, 643, 'Windows-1250');
    

    出于某种原因,Windows-1250 编码有效,但 UTF-8 无效。很奇怪,但我会使用 Windows-1250。

    【讨论】:

    • 这并不是真正的“解决方案”。如果有人正在查看您的 PDF 并且没有可用的编码(例如 Mac 用户),他们会得到块,或者更糟糕的是,奇怪的字符。为了可移植性和可维护性,通常应该首选 UTF-8。 -- 奇怪的是,您正在以 Windows-1250 编码输入字符,其中 s-with-caron 是 0x9A,一个单字节。而在 Unicode 中它是 U+0161,所以它应该是多个字节。输入正确的编码,不会出错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2016-05-31
    • 2017-03-04
    • 2013-05-26
    相关资源
    最近更新 更多