有时候我们需要截取一些中英文混杂的字符串,比如要显示新闻的标题,如果标题过长,我们就截取前面的15个字,后面用...显示
用 php 的 substr 来截取的话,有时候就会出现乱码现象,因为 substr 是截取英文字符串的,如果偏巧第 15 个字符为汉字的话,那末就相当于把一个汉字给切为2半了,那这时肯定会出现乱码
其实解决方法也很简单:
1> php.ini 中开启大字符集,支持多字符集之间的转换的扩展
extension=php_mbstring.dll
2> 使用 mb_substr() 函数
mb_substr( $str, 0, 15, 'utf-8' );
这样就能有效的解决 php 截取字符串中文乱码问题了
补充:还可以使用 iconv_substr() 函数
iconv_substr($str, 0, 12, 'GB2312');