mb_substr函数中文乱码

$content = "我爱你中文abc12中文";
$message = mb_substr(strip_tags($content), 0, 9,"utf-8");
$intro = mb_convert_encoding($message, 'UTF-8', 'UTF-8,GBK,GB2312');

在项目中本地截取正常,上传到服务器出现截取乱码,搞了半天,总结一下:

一: 

mb_substr() 函数返回字符串的一部分,之前我们学过 substr() 函数,它只针对英文字符,如果要分割的中文文字则需要使用 mb_substr()。

注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。

 

二: 

通过测试发现 mb_substr()函数对存在中文和英文的字符串编码使用过后会出现乱码,原因有可能是 中文占三个字符,英文占一个字符,因为当我  设置   $content = "我爱你中文"  或者 $content = "我爱你中文a1v" ,也就是全是中文或者包含三个英文的倍数的时候乱码消失,所以问题应该出在这里 ;

三:解决方法:  在后面加个utf-8,表示编码全部用utf-8

$content = "我爱你中文abc12中文";
$message = mb_substr($content =, 0, 9,"utf-8");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值