php mb_strlen的 正确用法

今天有个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');

推荐阅读更多精彩内容