Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获得多字节字符的确切数量?_Php_Multibyte - Fatal编程技术网

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

Php 如何获得多字节字符的确切数量?,php,multibyte,Php,Multibyte,我试过: mb_strlen('普通话'); strlen('普通话'); 它们都输出9个字符,而实际上只有3个字符 什么是正确的字符计数方法?您应该确保在第二个参数中指定编码 即 请参见一个汉字不等于一个ascii字符。 如果字符串采用UTF-8编码,mb_strlen是计算多字节字符的正确方法 请看这里: 如果您没有访问mb字符串扩展的权限,这也可以工作(我相信它会更快): mb_strlen('普通话', 'UTF-8'); strlen(utf8_decode('普通话')); //

我试过:

mb_strlen('普通话');
strlen('普通话');
它们都输出9个字符,而实际上只有3个字符


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

您应该确保在第二个参数中指定编码


请参见

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

请看这里:

如果您没有访问mb字符串扩展的权限,这也可以工作(我相信它会更快):

mb_strlen('普通话', 'UTF-8');
strlen(utf8_decode('普通话')); // 3