php mb_convert_encoding error: Call to undefined function mb_convert_encoding()

在做列表页时候,文章内容需要裁减,恰好遇到裁减的地方有一个emoji被裁减了,因为emoji编码不符合utf-8编码的规范,所以导致转换成json时候出现错误,

这时候我使用了

//修复转码问题JSON_ERROR_UTF8
            //https://www.php.net/manual/zh/function.json-last-error.php
            $value->content =mb_convert_encoding($value->content, "UTF-8", "auto");

在我本地是没问题的,可以成功把array转换成json并输出到客户端

但是在我的服务器上面却不行,并且没有看到任何报错直接返回500,

这是因为我把环境变量设置成了production,这种情况下是不会给客户端提供错误信息的,把它改为testing或者dev就可以

关注apache设置环境变量

  • 找到apache对应站点的配置
  • 添加代码 SetEnv CI_ENV testing
<VirtualHost *:8081>
            ServerName 81.69.14.69
            DocumentRoot /var/www/html/ci_project
	    <Directory /var/www/html/ci_project>
    		 Options FollowSymLinks
         	 AllowOverride All
         	 #Require all denied
         	 Require all granted
	  </Directory>
         SetEnv CI_ENV testing
</VirtualHost>

最终通过报错找到了答案https://stackoverflow.com/questions/37441150/mb-convert-encoding-error-call-to-undefined-function-mb-convert-encoding
应为缺少了模块导致的,执行以下命令后再重启apache就可以了

sudo apt-get install php-mbstring  # Debian, Ubuntu
sudo yum install php-mbstring  # RedHat, Fedora, CentOS

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆康永

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值