Найдите пробел в строках UTF-8, мне нужно mb_strpos? - PullRequest
1 голос
/ 19 декабря 2011

У меня есть строка в UTF-8.

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

Мне нужно найти положение пространства. Я должен использовать mb_strpos($string,' ');?

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

Если вы хотите найти символ позицию пробела, тогда да.strpos не будет выполняться, поскольку значение байта 0x20 (кодовая точка UTF-8 для пробела) также может встречаться как часть кодовой точки , закодированной в нескольких байтах .

Также, не забудьте указать кодировку - либо явно при вызове mb_strpos, либо установив значение по умолчанию с помощью mb_internal_encoding.

2 голосов
/ 19 декабря 2011

Обратите внимание, что простого использования mb_strpos может быть недостаточно - есть несколько кодовых точек, которые отображаются в виде пробела. Смотрите, например этот список - второй наиболее распространенный пробел (второй после стандартного пробела ASCII U+0020, десятичный 32) - неразрывный пробел (U+00A0); вам может понадобиться проверить это тоже - или заменить его на «обычный» символ пробела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...