• 欢迎访问小杰博客网站
  • 欢迎访问小杰博客网站哦

PHP报imagettfbbox(): any2eucjp(): invalid code in input string的两个解决办法

程序 小杰 6年前 (2018-01-23) 2231次浏览 已收录 0个评论

PHP在使用Intervention/image往图片插入文字时,报了imagettfbbox(): any2eucjp(): invalid code in input string错误。原因是PHP的一个bug把我们输入的文字被识别成日文。
方法一:
网上大多数解决方法是重新编译PHP,取消–enable-gd-jis-conv这个参数。
方法二:
对我们输入的字符编码进行转换,只要不是UTF8就不会被识别成日文。所以我们用下面的方法把编码转成unicode。

01
02
03
04
05
06
07
08
09
10
11
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;
}

千万不用再使用PHP的iconv方法,每台机器上转换后的编码都有可能不一样。
推荐使用mb库的mb_convert_encoding进行转换。


小杰博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP报imagettfbbox(): any2eucjp(): invalid code in input string的两个解决办法
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址