non-breaking utf-8 0xc2a0 space und preg_replace seltsames verhalten

In meinem String habe ich utf-8 (0xc2a0) und ich möchte es durch etwas anderes ersetzen.

Wenn ich benutze

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

es funktioniert ok

Aber wenn ich benutze

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

Der nicht unterbrechende Speicherplatz wird nicht gefunden (und ersetzt).

Warum? Was ist los mit dem zweiten regulären Ausdruck?

Das Format\x{C2A0} stimmt, habe ich auch benutztu Flagge.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage