美文网首页
PHP strlen和mb_strlen的区别

PHP strlen和mb_strlen的区别

作者: 周pan | 来源:发表于2019-07-22 10:38 被阅读0次
$str = "D.C is8中国人";
echo mb_internal_encoding() . PHP_EOL;//UTF-8
echo strlen($str) . PHP_EOL;
echo mb_strlen($str, "utf-8") . '  utf8' . PHP_EOL;
echo mb_strlen($str, "gbk") . '  gbk' . PHP_EOL;
echo mb_strlen($str, "8bit") . '  8bit' . PHP_EOL;

// UTF-8
// 16 在strlen计算中,对待一个UTF8的中文字符,处理为3个字节长度,所以为3+1+2+1+9=16个
// 10  utf8 当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符,所以为3+1+2+1+3=10;
// 12  gbk 当mb_strlen的内码选择为gbk的时候,一个中文字符当成1.5个字符来处理来处理,最后就是:3+1+2+1+4.5=11.5
// 16  8bit 当mb_strlen的内码选择为 8bit 的时候,一个中文字符当成3个字符来处理来处理,最后就是:3+1+2+1+9=16
        

相关文章

网友评论

      本文标题:PHP strlen和mb_strlen的区别

      本文链接:https://www.haomeiwen.com/subject/lkjilctx.html