使用 Intervention/Image 图片写入中文遇到的问题,及解决方法。
今天用到图片中需要写入文字,使用了Intervention/Image扩展,
按照Image官方文档,text方法写入文字,
// use callback to define details
$img->text('测试写入中文', 0, 0, function($font) {
$font->file('foo/bar.ttf');
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
但是发现写入中文报错(英文或数字是没问题的):
搜索问题,大多是说重新编译PHP,取消–enable-gd-jis-conv这个参数。PHPinfo查看PHP环境,确实存在,重新编译后,
但是问题未得到解决。
最终解决办法将utf-8 字符串转为Unicode编码格式,问题解决。
function to_unicode($string)
{
$str = mb_convert_encoding($string, 'UCS-2', 'UTF-8');
$arrstr = str_split($str, 2);
$unistr = '';
foreach ($arrstr as $n) {
$dec = hexdec(bin2hex($n));
$unistr .= '&#' . $dec . ';';
}
return $unistr;
}
推荐文章: