获取中文字符长度遇到的问题,以及解决方法
使用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); // 输出:6 echo 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
如此简单方便,为何还要自己建立函数来获取字符串长度呢?
可能是还有些我想不到方面吧。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。