0

我到处寻找,但我不知道为什么我会遇到这个问题。

我正在使用 phpThumb 在一些照片上添加一些文本(水印)。问题是我需要使用来自挪威的特殊字符(æøå)。这些在 ImageTTFtext 中表现不佳。

在此处输入图像描述

上图包含æ 的代码并且应该(根据文档)是正确的。我还尝试了一些我在堆栈上找到的函数,但一切都返回相同。为什么它打印代码而不是我要显示的实际字符?

这是由于某些软件的旧版本还是什么?

版本:

PHP 5.3.2
ImageMagick 6.5.7
GD: 2.0

编辑:为了清楚起见,我根据文档以“正确”的方式传递文本。作为参数传递utf_encode('€')应该有效。

4

2 回答 2

0

您关心 的text参数imagettftext。让我们回顾一下它的文档:

UTF-8 编码的文本字符串。

可能包括十进制数字字符引用(形式:€[€])以访问位置 127 以外的字体中的字符。©支持十六进制格式(如 [©])。UTF-8 编码的字符串可以直接传递。

在您的问题中,您既没有发布您正在使用的代码,没有指定使用的文字字符串。例如,如果您传递一个字符串"î",您将看到 î。因此,您添加到问题中的显示本身可能会证明您遇到的问题,但显示本身可能与它的原因完全无关。原因将是字符串。

旁边的函数是 gd 扩展的一部分,而不是 ImageMagick。

PHP 版本 5.3.2 也已过时,但是如果出现与您描述的错误相符的错误,我还没有扫描它的更新日志(也没有扫描您使用的 GD 库版本)。但这似乎是可能的。

在任何情况下都应该imagettftext正确显示文本。即使没有找到一个字符,你也会看到不同的东西。

如果字符串中使用了字体不支持的字符,则空心矩形将替换该字符。从参数说明:

提供您传递给该函数的字符串的十六进制转储并将其添加到您的问题中。

于 2012-10-30T20:57:22.390 回答
0

回答这个问题,以便任何与我面临相同问题的人都可以找到解决方案。

原来 GD 的“内置”字体不支持我的特殊字符。上传您自己的字体并在函数中使用它们,它应该可以工作。

于 2012-10-30T20:58:09.037 回答