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");?>
完美!