为什么以下语句的输出是3而不是1?
事情是这样的,
echo mb_strlen("鉑");
事情是这样的,
echo "鉑";
将正确输出已编码为UTF-8的符号。
echo mb_strlen("鉑");
echo "鉑";
将正确输出已编码为UTF-8的符号。
确保设置正确的内部编码:
<?php
echo mb_internal_encoding() . '<br />';
echo mb_strlen('鉑', 'utf-8') . '<br />';
echo mb_strlen('鉑') . '<br />';
mb_internal_encoding('utf-8');
echo mb_internal_encoding() . '<br />';
echo mb_strlen('鉑') . '<br />';
// ISO-8859-1
// 1
// 3
// UTF-8
// 1
您很可能需要添加字符集:
echo mb_strlen("鉑","utf-8");
将编码设置为您的 mb_strlen 函数:
echo mb_strlen("鉑", "UTF-8");
如果按照以下步骤操作,你将获得正确的答案。
echo mb_strlen("鉑", "UTF-8");
mb_strlen('鉑', 'UTF-8');
了吗? - John Parker