利用mb_substr函数解决PHP截取汉字乱码的问题

学习php过程中遇到一个substr函数,但是截取中文时一直乱码,刚开始以为是数据库编码输出问题,后来百度下发现了解决方案,就是mb_substr函数,要想使用这个函数,还需要做一点准备工作,具体步骤如下:

  1. 检查你的Windows/system32下是否有php_mbstring.dll这个文件,没有的话就差那个PHP安装目录中extensions文件夹复制到Windows/system32文件夹中。
  2. 打开PHP配置文件php.ini,搜索mbstring.dll,找到

    ;extension=php_mbstring.dll,去掉前面的;分号,这样mb_substr函数就可以使用了。
    mb_strcut函数功能也可以截取字符串长度,下面就给大家演示下具体区别:

<pre class="line-numbers prism-highlight" data-start="1"><code class="language-php"><?php
$str = '这样一来我的字符串就不会有乱码^_^'; 

echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8');
//结果:这样一来我的字
echo "<br>"; 

echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
//结果:这样
?> 

从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象。

One Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注