我到处寻找,但我无法弄清楚为什么我会遇到这个问题。
我正在使用phpThumb在某些照片上添加一些文字(水印)。问题是我需要使用挪威(æøå)的特殊字符。使用ImageTTFtext时,这些效果并不好。
上面的图片包含æ的代码,并且应该(根据文档)是正确的。我也尝试了一些我在堆栈上找到的函数,但一切都返回相同。 为什么打印代码而不是我想要显示的实际角色?
这是由于某些软件的旧版本还是什么?
版本:
PHP 5.3.2
ImageMagick 6.5.7
GD: 2.0
编辑:为了说清楚,我根据文档以正确的方式传递文本。传递utf_encode('€')
作为参数应该工作。
答案 0 :(得分:0)
您关注text parameter of imagettftext
。我们来看看它的文档:
UTF-8编码的文本字符串。
可以包含十进制数字字符引用(格式为
€
[€])以访问位置127以外的字体中的字符。支持十六进制格式(如©
[©])。 UTF-8编码的字符串可以直接传递。
在您的问题中,您既没有发布您正在使用的代码也没有您指定了使用的文字字符串。例如,如果您传递字符串"î"
,您将看到î。因此,您添加到问题中的显示本身可能会显示您遇到的问题,但显示本身可能与其原因完全无关。原因将是字符串。
接下来,该函数是gd扩展的一部分,而不是ImageMagick。
PHP版本5.3.2也已过时,但是如果出现与您所描述的内容相符的错误,我还没有扫描它的更改日志(也不是您使用的GD库版本)。但似乎有可能。
在任何情况下都应该imagettftext
正确显示文本。即使找不到角色,你也会看到不同的东西。
如果在字符串中使用了字体不支持的字符,则空心矩形将替换该字符。从参数说明:
提供您传递给该功能的hex-dump of the string并将其添加到您的问题中。
答案 1 :(得分:0)
回答这个问题,以便任何与我面临同样问题的人都可以找到解决方案。
事实证明GD的“内置”字体不支持我的特殊字符。上传自己的字体并在函数中使用它,它应该可以工作。