2 hjzyzr hjzyzr 于 2015.05.26 17:03 提问

PHP mb_strlen()的诡异事件

同样是4个汉字,为什么字符的个数不一样呢?

4个回答

hjzyzr
hjzyzr   2015.05.26 19:56
已采纳

额,之前的图片是错的,这张是对的图片说明

devmiao
devmiao   Ds   Rxr 2015.05.26 17:58

不同的编码是不同的

u010477933
u010477933   2015.05.26 17:55

我遇到过相似的问题,答案可能是这样子的:“是”因为编码的原因,被认为是占一个字节,“哈”被认为占两个字节,所以才会有这个问题。而具体哪些汉字占一个字节,应该不多,属于个别现象。

hjzyzr
hjzyzr   2015.05.26 19:53

好吧,我已经知道怎么回事了,在使用 mb_strlen()时,指定的字符集应与字符串本身实际的字符集一致,才会得到正确的结果,因此,由于我的例子中,默认的是gbk,
而使用函数时指定的是utf-8来计算字符个数,当然是不对的了,因此在使用mb_strlen()
前,利用iconv()函数进行转码即可,如下图所示图片说明

Csdn user default icon
上传中...
上传图片
插入图片