preg_match и UTF-8 в PHP

Я пытаюсь найти строку в кодировке UTF8, используяpreg_match.

preg_match('/H/u', "\xC2\xA1Hola!", $a_matches, PREG_OFFSET_CAPTURE);
echo $a_matches[0][1];

Это должно вывести 1, так как «H» находится в индексе 1 в строке «¡Hola!». Но он печатает 2. Таким образом, похоже, что он не рассматривает объект как строку в кодировке UTF8, хотя я передаю "u"модификатор в регулярном выражении.

У меня есть следующие настройки в моем php.ini, и другие функции UTF8 работают:

mbstring.func_overload = 7
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off

Есть идеи?

Ответы на вопрос(7)

Ваш ответ на вопрос