我正在使用imagettftext在php中生成文本。文本是从mysql数据库中提取的。尽管在字体的字符映射中并且出现在数据库中,但某些字符不会出现在渲染文本中。例如,m-dashes( - )和smartquotes /撇号(“”)。
字符要么不显示,要么被问号替换。
我怀疑这与编码有关,但我不知道编码知道从哪里开始。任何帮助将不胜感激。
答案 0 :(得分:0)
在将文本传递给函数之前,请尝试在文本上使用htmlentityencode
。
UTF-8编码的文本字符串。
可以包含十进制数字字符引用(格式为
€
)以访问位置127以外的字体中的字符。支持十六进制格式(如©
)。 UTF-8编码的字符串可以直接传递。不支持命名实体,例如
©
。考虑使用html_entity_decode()将这些命名实体解码为UTF-8字符串(html_entity_decode()从PHP 5.0.0开始支持此功能。)如果字符串中使用的字符不受字体支持,则空心矩形将替换该字符。