一般来说,使用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; }