FPDF存在欧元符号问题

16

我花了几天时间筛选各种方法,以鼓励FPDF渲染欧元符号,但没有成功。我尝试过:


$currency = iconv("UTF-8", "ISO-8859-1//TRANSLIT", '€');

导致的结果是:

iconv() [function.iconv]:在输入字符串中检测到不完整的多字节字符。

我尝试了各种编码类型,但都没有成功。


请您再次检查答案并重新考虑哪个是正确的答案? - Gerard de Visser
我不确定为什么我标记了一个答案为正确,因为我尝试的所有方法都没有起作用。我已经取消了第一个答案的勾选。 - Wayne Smallman
也许你很久以前就标记过了。但是你可以看到,我的答案是正确的(16个赞)。也许你可以把它标记为正确的,以便面对同样问题的人能够参考。 - Gerard de Visser
也许您想编辑您的答案并在此处解释讨论,以便对其他人清晰明了? - Wayne Smallman
我为了更清晰明了,撤下了我之前被接受的答案。 - Mchl
4个回答

50

实际上,你可以使用欧元ASCII码chr(128)在FPDF中生成带有欧元符号的PDF。

将其设为常量是一个好习惯。在脚本顶部添加:

define('EURO',chr(128));

现在您可以在脚本中使用EURO来打印欧元符号。 例如:

"Costs: ".EURO.100

输出将会是:花费:€100

注意:对于使用chr(ascii)的其他符号也适用,其中ascii是该符号的ASCII码。


2
为什么不直接使用"Costs: " . chr(128)呢?此外,这应该是被接受的答案,而不是那个推广不同扩展的答案。 - kasimir
3
因为 chr(128) 对于阅读你的代码的人来说没有任何意义,而 EURO 有。如果你喜欢这个答案,可以点赞以便将其设为被接受的答案。 - Gerard de Visser
chr(128) 对我来说很有意义... 我认为我的抱怨在于你的答案开始指示我们将其定义为常量,而我认为那是“可选的”。你可以同样将其定义为变量,或使用函数或其他方式。关键是使用 chr 函数获取符号。我认为你的答案应该专注于这一点。 - kasimir
3
比使用扩展程序要好得多。我需要添加英镑符号(£),它的ASCII码是chr(163),如果有人想知道的话。 - Chud37
我对这个答案感到困惑的原因是ASCII实际上在127结束。任何超过这个范围的字符都可能会受到几个不兼容的扩展影响。虽然这个解决方案可以在大多数使用Windows-12xx代码页的系统上工作,但在其他地方可能会出现问题。 - Mchl

10

我搜了很久,什么都没用 - 直到我使用了这个:utf8_encode(chr(128))


谢谢。我还需要额外的utf8_encode。 - Stefan S

0

iconv 函数对我有用

$text = "String with € sign"    
$pdfobj->Write(0,iconv('UTF-8', 'windows-1252', $text));

-3
如果您想显示这行文字 "£4.30",请按照以下步骤进行: $text = chr(163); $pound = $text."4.30 p m";
注意:163 是英镑代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接