一般来说,使用mb_strlen() 函数就可以了。
但是某些时候中文被规定为是占2个字节,这时可以使用:
/**
* 计算字符串混合长度,一个中文占两个字节(正常utf8占3个,某些接口要求是两个)
* @param string $str
* @return int
*/
function getStrLen(string $str): int
{
$mbLen = mb_strlen($str);
$len = strlen($str);
$subLen = $len - $mbLen;
if ($subLen > 0) {
$zhCharsLen = $subLen / 2;
$len = $zhCharsLen + ($mbLen - $zhCharsLen);
}
return $len;
}