发新话题
打印

PHP截取汉字乱码问题解决方法--mb_substr函数的应用

PHP截取汉字乱码问题解决方法--mb_substr函数的应用

利用mb_substr截取字符串不会出现乱码问题,高手可以飞过......
首先
1.确保你的Windows/system32下有php_mbstring.dll这个文件,没有就从你Php安装目录extensions里拷入Windows/system32里面。

2.在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到
;extension=php_mbstring.dll把前面的;号去掉,这样mb_substr函数就可以生效了
mb_strcut函数功能也可以截取字符串长度,下面实例具体看看区别在哪:

    <?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是按字节来切分字符,但是都不会产生半个字符的现象。

TOP

顶一下路过
交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

UTF-8是变长编码,每个Unicode代码点按照不同范围,可以有1-3字节的不同长度。

哪为什么 这里的汉字 就是3个字节?
世界极静  只有灵魂独舞--------世界上没有任何事可以替代坚持。

我们都需要论坛 论坛也同时需要我们的支持

TOP

通用字符集 中规定了汉字十六位制的代码段为:  0800 - FFFF
与UTF-8 二进制的对应的代码段就是 1110xxxx 10xxxxxx 10xxxxxx   具体为什么这样规定你要问国际标准组织
八位等于一个字节,所以对应就是三个字节了
mb_strcut 它是按字节来截取的,而且是<=要截的字节数 就像现实中的四舍五入吧 半个人不算人
学会怎么调试程序,学会怎么设计模式,学会怎么配置环境,学会怎么带项目,学会怎么分析客户需求

TOP

发新话题