如何获取多字节字符的确切数量?

时间:2009-09-17 03:16:02

标签: php multibyte

我试过了:

mb_strlen('普通话');
strlen('普通话');

它们都输出9,而实际上只有3个字符。

计算字符的正确方法是什么?

3 个答案:

答案 0 :(得分:7)

你应该确保在第二个参数

中指定编码

mb_strlen('普通话', 'UTF-8');

请参阅manual

答案 1 :(得分:1)

如果您无法访问mb字符串扩展名,这也有效(我相信它更快):

strlen(utf8_decode('普通话')); // 3

答案 2 :(得分:0)

一个汉字不等于一个ascii字符。 如果以UTF-8编码的字符串,mb_strlen是计算多字节字符的正确方法。

见这里: http://www.herongyang.com/PHP-Chinese/Multibyte-UTF-8-mb_strlen.html