我在由 PHP GD 库创建的图像中使用 Verdana 字体。
imagettftext($image, $fontSize, 0, 70, $y, $color, $font, $username );
大多数情况下 imagettftext 非常适用于字符串。
但是我的一些用户在他们的名字中使用了奇怪的字符/符号。
所以当我尝试将他们的名字打印到图像上时。例如:
该用户使用ɦɪɲɣƙƨєʌɾ
符号。所以 Verdana 不能打印它们。
我用这个:
$username=iconv('UTF-8', 'ASCII//TRANSLIT', $username);
输出是这样的:
(当前语言环境在英语和德语之间发生变化。所以当前语言环境可能无法处理这些字符ɦɪɲɣƙƨєʌɾ
:)
如果不写一个很大的块,似乎不可能音译ɦ
为h
, ɲ
to 。像这样。n
str_replace()
所以我想知道是否可以检查字体(Verdana)是否可以显示这些符号。如果其中一个字符不能在字符串中显示,那么我可以将一个空字符串传递给
imagettftext
方法。我可以检查字体中支持的字符吗?或者创建一个包含 Verdana 支持符号的字符映射,并检查我的字符串是否包含不支持的符号?(我认为由于这个问题
是不可能的)或者也许是另一种解决方案,是否可以在中使用多种字体
imagettftext()
?
例如,首先尝试 Verdana,如果 Verdana 不涵盖该符号,则使用 Arial sans serif 等。或任何其他解决方案?
编辑:
似乎 Verdana 在我的文本中不支持这些 unicode 字符。
Verdana 支持的字符:http
://www.fileformat.info/info/unicode/font/verdana/grid.htm
Verdana 未支持的字符: http ://www.fileformat.info/info/unicode/font/verdana/missing.htm