【问题标题】:Find a space in UTF-8 strings, do I need mb_strpos?在 UTF-8 字符串中找到一个空格,我需要 mb_strpos 吗?
【发布时间】:2012-01-23 12:37:03
【问题描述】:

我有一个 UTF-8 字符串。

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

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

【问题讨论】:

    标签: php multibyte


    【解决方案1】:

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

    此外,不要忘记指定编码 - 在 mb_strpos 调用中明确指定或使用 mb_internal_encoding 设置默认值。

    【讨论】:

    • 进行了测试,strpos 返回 6 :),所以是的,我需要 mb_strpos
    【解决方案2】:

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

    【讨论】:

    猜你喜欢
    • 2010-10-08
    • 2021-02-20
    • 2012-01-04
    • 2016-05-31
    • 2012-01-20
    • 2010-10-24
    • 1970-01-01
    • 2015-12-12
    • 2011-05-12
    相关资源
    最近更新 更多