对于虚拟人,在PHP中,单字节字符串和多字节字符串之间有什么区别,在哪种情况下我们应该考虑其中的一种或另一种情况?
用于单字节字符串(例如US-ASCII、ISO 8859系列等)使用substr和用于多字节字符串(例如UTF-8、UTF-16等)使用mb_substr: //单字节字符串$result = substr($myStr,0,5);//多字节字符串$result = mb_substr($myStr,0,5);
例如,如果我计划开发中国的东西,我需要采取什么特殊的措施,因为他们的特点吗?‘Utf-8编码不够好吗?
发布于 2014-05-23 05:59:15
函数strlen (单字节)返回全部计数字节,函数mb_strlen返回计数字符!
字符可以超过1字节(例如UTF-8).
就你而言,例如:
$myStr = '៘៥឴ឨឆ';
$result = substr($myStr, 0, 5);
$result = mb_substr($myStr, 0, 5, mb_detect_encoding($myStr));函数substr在本例中返回无效值,因为字符有更多的一个字节,但是函数mb_substr返回正确的数据。
https://stackoverflow.com/questions/23821728
复制相似问题