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
Есть идеи?