我在Laravel 5.5中使用ImageIntervention来生成图像。
当我的文字是this is my text ♣
时,♣
呈现为方框。如何让PHP呈现正确的字符?
我的代码是这样的:
$overlay = \Image::canvas(600, 500 );
$overlay->rotate( 2);
$overlay->text(
'this is my text ♣',
$overlay->getWidth() / 2,
$overlay->getHeight() / 2,
function ( $font ) use ( $textData ) {
/** @var \Intervention\Image\Gd\Font $font */
$font->file( resource_path( 'assets/fonts/OpenSans-Bold.ttf' ) );
$font->size( 100 );
$font->angle( 2 );
$font->valign( 'center' );
$font->align( 'center' );
} );
所有其余的工作正常,只是文本的呈现出错了,我不知道为什么。
我发现ImageIntervention正在这里绘制文本:https://github.com/Intervention/image/blob/master/src/Intervention/Image/Gd/Font.php#L202
所以它使用imagettftext
来绘制文本。 Open Sans字体确实支持角色,所以我不认为这是问题所在。
这可能会出错?
看看UTF-8杂项符号
你要找的是:&9827;或&-俱乐部; (没有 - )