当我在一个字符串上运行PHP函数strlen()和mb_strlen()时,它们都返回错误的字符数量。
这是我正在使用的一段代码...
$foo = mb_strlen($itemDetails['ITEMDESC'], 'UTF-8');
echo $foo;
它告诉我这个字符串 - “4½” Straight Iris Scissors”是45个字符长,但实际上只有27个。
同时,这个字符串 - “Infant Heel Warmer, No Adhesive Attachment Pad, 100/cs”是54个字符长,计算正确。
我猜测这可能与字符编码有关,应该都是UTF-8格式。我尝试使用mb_strlen()函数检测不同的字符编码类型时,发现含有这些非标准字符的字符串始终返回了奇怪的字符数。
我不知道为什么会出现这种情况。
iconv_set_encoding("internal_encoding", "UTF-8");
。 - Kerrek SB