php截取中文字符出现问号乱码

在数据库中获取到了新闻标题,使用php截取一部分,出现问号乱码

 原来的代码是:

<?php echo substr($res['art_title'],0,20);?>

了解到substr() 截取中文字符会乱码,于是修改为 mb_substr()

<?php echo mb_substr($res['art_title'],0,20);?>

在本地测试一度正常,后面换了服务器,上线之后,又出现乱码了

查询说是因为网页文件与数据库编码不一致

天知道为什么不一致

我明明记得数据库和页面文件我都是设置的 utf8 来着

虽然不懂什么逻辑,但是也找到了解决方法,mb_substr() 最后一个参数再加上编码就行

<?php echo mb_substr($res['art_title'],0,20,"utf-8");?>

完美!

猜你喜欢

转载自www.cnblogs.com/chenyingying0/p/12426163.html