今天有个php的小伙伴问我 怎么两台服务器 mb_strlen 出来的结果不一样,我一执行,还真是。
查了下手册 http://php.net/manual/zh/function.mb-strlen.php
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
encoding 参数为字符编码。如果省略,则使用内部字符编码。
执行了一下 php -r 'echo mb_internal_encoding();'
结果 ISO-8859-1
阿里云服务器 centos 64位 竟然不是utf8的。
原因找到,正确用法 mb_strlen($utf8_string, 'utf-8');
网友评论