找一个UTF-8字符串的空格,我需要mb_strpos吗?

时间:2011-12-19 11:02:30

标签: php multibyte

我有一个UTF-8字符串。

$string = "ãçé êíõ";

我需要找到空间的位置。 我必须使用mb_strpos($string,' ');

2 个答案:

答案 0 :(得分:3)

如果要查找空间的字符位置,则为是。 strpos不会这样做,因为字节值0x20(空格的UTF-8代码点)也可能作为代码点encoded over multiple bytes的一部分遇到。

此外,请不要忘记指定编码 - 明确地在mb_strpos电话上或通过mb_internal_encoding设置默认值。

答案 1 :(得分:2)

请注意,仅使用mb_strpos可能还不够 - 有几个代码点显示为空格。参见例如this list - 第二个最常见的空格字符(默认ASCII空间U+0020的第二个,十进制32)是不可破解的空格(U+00A0);您可能还需要检查那个 - 或者将其替换为“通常”空格字符。