el espacio utf-8 0xc2a0 sin interrupciones y el extraño comportamiento preg_replace

En mi cadena tengo un espacio sin ruptura de utf-8 (0xc2a0) y quiero reemplazarlo con otra cosa.

Cuando yo uso

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

funciona bien

Pero cuando uso

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

no se encuentra el espacio que no se rompe (y reemplazado).

¿Por qué? ¿Qué está mal con la segunda expresión regular?

El formato\x{C2A0} es correcto, tambien lo utilicéu bandera.

Respuestas a la pregunta(5)

Su respuesta a la pregunta