欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP 截取字符串乱码的解决方案

程序员文章站 2022-03-21 15:30:18
今天遇到一个坑,左右调试坑的我一脸懵逼,当我们对一条字符串进行截取的时候,通常第一个想到的就是substr()函数了,但是如果是中文+数字的字符串的话,这时候使用substr进行截取就会出现乱码的问题,这是因为substr会把中文按照每个汉字三个字节进行截取,故而截取中文的时候并不适用,另外一个方法 ......

今天遇到一个坑,左右调试坑的我一脸懵逼,当我们对一条字符串进行截取的时候,通常第一个想到的就是substr()函数了,但是如果是中文+数字的字符串的话,这时候使用substr进行截取就会出现乱码的问题,这是因为substr会把中文按照每个汉字三个字节进行截取,故而截取中文的时候并不适用,另外一个方法就是使用mb_substr()或者mb_strcut()函数进行截取,并设置截取后的编码格式为'utf-8',使用这两个函数需要开启php.ini中php_mbstring.dll扩展,将前面的;去掉然后重启php-fpm,

$string = '下城区长浜路968号华盛达雷迪森广场酒店';

我先使用了mb_substr()函数,但是并没有解决我的问题,有的不乱码,有的还是乱码,也不知道网上那些说用这个函数就能解决的有没有遇到这个问题- -!

echo mb_substr($string,0,40,'utf-8');

PHP 截取字符串乱码的解决方案

最后我又用了mb_strcut()函数,它的用法和mb_substr()是一样的,才算解决了这个问题:

mb_strcut($string,0,40,'utf-8');

PHP 截取字符串乱码的解决方案