PHP GD文本和特殊字符/编码?

时间:2012-06-15 15:52:19

标签: php encoding gd

我正在使用imagettftext在php中生成文本。文本是从mysql数据库中提取的。尽管在字体的字符映射中并且出现在数据库中,但某些字符不会出现在渲染文本中。例如,m-dashes( - )和smartquotes /撇号(“”)。

字符要么不显示,要么被问号替换。

我怀疑这与编码有关,但我不知道编码知道从哪里开始。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在将文本传递给函数之前,请尝试在文本上使用htmlentityencode

  

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

     

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

     

不支持命名实体,例如©。考虑使用html_entity_decode()将这些命名实体解码为UTF-8字符串(html_entity_decode()从PHP 5.0.0开始支持此功能。)

     

如果字符串中使用的字符不受字体支持,则空心矩形将替换该字符。

来源:http://www.php.net/manual/en/function.imagettftext.php