неразрывный пробел utf-8 0xc2a0 и preg_replace странное поведение

В моей строке у меня есть неразрывный пробел utf-8 (0xc2a0), и я хочу заменить его на что-то другое.

Когда я использую

$str=preg_replace('~\xc2\xa0~', 'X', $str);

все работает хорошо

Но когда я использую

$str=preg_replace('~\x{C2A0}~siu', 'W', $str);

неразрывный пробел не найден (и заменен).

Почему? Что не так со вторым регулярным выражением?

Формат\x{C2A0} правильно, также я использовалu флаг.

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

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