我在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字体确实支持该角色,所以我不认为这是问题。
这里可能出现什么问题?
答案 0 :(得分:0)
查看UTF-8杂项符号
你正在寻找的是:& 9827; 或& -clubs; (没有 - )