获取中文字符长度遇到的问题,以及解决方法

来源:互联网 发布:淘宝热卖产品排行榜 编辑:程序博客网 时间:2024/05/17 09:01

使用strlen()函数获取中文字符,会出现默认一个中文字符为3个字节(UTF8编码),如果是GBK编码,则默认一个中文字符为2个字节。

之后在网上查找如何正确获取中文字符长度的方法,发现大多都是以创建函数的方式来解决;

//这是WordPress中的一段代码,主要思想就是先用正则将字符串分解为个体单元,然后再计算单元的个数即字符串的长度,代码如下(只能处理utf-8编码下的字符串):$zhStr = ‘您好,中国!’;$str = ‘Hello,中国!’;// 计算中文字符串长度function utf8_strlen($string = null) {// 将字符串分解为单元preg_match_all(“/./us”, $string, $match);// 返回单元个数return count($match[0]);}echo utf8_strlen($zhStr); // 输出:6echo utf8_strlen($str); // 输出:9<span style="font-size:18px;color:#FF0000;">可是后来我发现,可以直接调用mb_strlen()函数获取中文字符串长度</span>如:
$lenth=mb_strlen('我是一个有硬度的男人','utf8');echo $lenth;//输出 10$lenth=mb_strlen(我是一个,有硬度的man',‘utf8');echo $lenth;//输出11

如此简单方便,为何还要自己建立函数来获取字符串长度呢?

可能是还有些我想不到方面吧。


1 0