15年软件开发经验 只做源码定制 互联网+定制化解决方案

15年软件开发经验,只做源码定制!

原创设计 定制开发

满足您的个性化需求

当前位置:首页 后端开发 Thinkphp5

解决php用substr()截取中文字符串报错的问题

王少铮| 发布于 2021-09-02 11:55:19| 128阅读| 0点赞| 0评论
举报

原因是因为编码转换,需要重新转换一下编码

substr这个函数适用于截取英文字符串,截取中文的时候,一个中文会分成三个字节,假如截取‘你好’,substr('你好',0,3),这样才能截取到一个'字',所以建议用mb_substr函数截取,在mb_substr函数里,中英文都会当做1个字节处理,截取完后,需要转换一下编码,代码如下

//获取到字符串的长度$length = mb_strlen($v['nickName']);
            if($length > 10){        //截取十位,然后将尾部替换为...
                $data[$k]['nickName'] = mb_substr($v['nickName'],0,10) . '...';        //先将utf-8转换为gbk编码
                $data[$k]['nickName']=iconv("utf-8","gbk//IGNORE",$data[$k]['nickName']);        //然后再转换回来
                $data[$k]['nickName'] = mb_convert_encoding($data[$k]['nickName'],'UTF-8','GBK');
            }
0

0条评论

别默默看啦~登录/注册一起参与讨论吧~

热门标签

王少铮
微信扫一扫立即咨询
账号登录|扫码登录

立即注册 |忘记密码?

欢迎注册

已有账号马上登录

重置密码

扫码绑定微信
微信扫一扫

绑定手机号

分享到-微信

举报

  • 举报类型:

  • 举报描述:

您好,当前积分不足。

在线客服
拨打电话
17330196230 13230981129
顶部