tra*_*nte 5 php fonts gd utf-8 imagettftext
我在PHP GD库创建的图像中使用Verdana字体.
imagettftext($image, $fontSize, 0, 70, $y, $color, $font, $username );
Run Code Online (Sandbox Code Playgroud)
大多数情况下,imagettftext非常适合字符串.
但是我的一些用户在名字中使用了奇怪的字符/符号.
所以,当我尝试将他们的名字打印到图像时.例如:

该用户使用?????????
符号.所以Verdana无法打印出来.
我用过这个:
$username=iconv('UTF-8', 'ASCII//TRANSLIT', $username);
Run Code Online (Sandbox Code Playgroud)
输出是这样的:

(当前语言环境英语和德语之间的变化,从而可能当前区域无法处理这些字符.?????????)
现在看来似乎是不可能的音译?来h,?来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
| 归档时间: |
|
| 查看次数: |
2702 次 |
| 最近记录: |