【发布时间】:2012-01-23 12:37:03
【问题描述】:
我有一个 UTF-8 字符串。
$string = "ãçé êíõ";
我需要找到空间的位置。
我必须使用mb_strpos($string,' ');?
【问题讨论】:
我有一个 UTF-8 字符串。
$string = "ãçé êíõ";
我需要找到空间的位置。
我必须使用mb_strpos($string,' ');?
【问题讨论】:
如果要查找空格的字符位置,那么可以。 strpos 不会这样做,因为字节值 0x20(用于空格的 UTF-8 代码点)也可以作为代码点 encoded over multiple bytes 的一部分遇到。
此外,不要忘记指定编码 - 在 mb_strpos 调用中明确指定或使用 mb_internal_encoding 设置默认值。
【讨论】:
请注意,仅使用 mb_strpos 可能还不够 - 有几个代码点显示为空格。参见例如this list - 第二个最常见的空格字符(仅次于默认 ASCII 空格 U+0020,十进制 32)是不可破坏的空格 (U+00A0);您可能还需要检查那个 - 或将其替换为“通常”的空格字符。