zqifa的博客

我不管,反正我最萌~

php文字生成图片报错imagettfbbox(): any2eucjp(): invalid code in input string问题解决

今天做项目,thinkphp使用QrCode生成二维码图片写入中文的时候报错

报错信息:

imagettfbbox(): any2eucjp(): invalid code in input string

代码:

$text = '长按识别二维码';
$box = imagettfbbox($fontsize, $angle, $fontfile, $text);

搜索问题,都是说
重新编译PHP,取消–enable-gd-jis-conv这个参数。
查看PHPINFO后,发现确实存在此参数,去掉重新编译,还是未解决问题。

网上找了一些资料,尝试解决,现在把解决经过贴出来。

尝试办法1:重新编译PHP,取消–enable-gd-jis-conv这个参数。

查看PHPINFO后,未发现存在此参数,未解决问题。

尝试办法2:php转换字符编码为utf-8

代码如下:

function strToUtf8($str){
    $encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));

    if($encode == 'UTF-8'){
        return $str;
    }else{
        return mb_convert_encoding($str, 'UTF-8', $encode);
    }
}
$text = '长按识别二维码';
$box = imagettfbbox($fontsize, $angle, $fontfile, strToUtf8($text));

未解决。

尝试办法3:自定义了辅助函数,转换编码

代码如下:

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;
}

尝试办法4:使用mb_encode_numericentity函数转换字符编码

代码如下:

$encoded_char = mb_encode_numericentity('长按识别二维码', array(0x0080, 0xffff, 0, 0xffff), 'UTF-8');

使用示例代码如下:

$text = '长按识别二维码';
$text = mb_encode_numericentity($text, array(0x0080, 0xffff, 0, 0xffff), 'UTF-8');
$box = imagettfbbox($fontsize, $angle, $fontfile, strToUtf8($text));

问题得到解决。

作者:zqifa

出处:https://www.l1mn.com

原文地址:https://www.l1mn.com/p/kvuej.html

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

公告

昵称:zqifa

站龄: 3年11个月

博客持续完善ing,敬请期待...

打滚求打赏(๑ ̄ ̫  ̄๑)

此处弱弱求打赏~~万一有好心人呢~~

支付宝酱

支付宝赞助

微信酱

微信赞助

随笔分类

php(110)

linux(63)

python(44)

web前端(39)

js(35)

服务器(33)

mysql(30)

html(24)

docker(23)

centos(22)

windows(22)

django(20)

前端设计(18)

git(16)

数据库(14)

算法(14)

常用软件(14)

编程进阶(13)

字符编码(13)

jquery(12)

更多

我的标签

php(106)

linux(47)

python(45)

js(34)

mysql(30)

centos(28)

web前端(23)

windows(22)

docker(22)

django(20)

更多

相册

Copyright © zqifa 联系方式:z___qf@163.com