html_entity_decode(" ") == '\xa0'
Я думаю, что по замыслу, я не понимаю, почему str_replace не работает для вас, попробуйте этот фрагмент:
$nbsp = html_entity_decode(" ");
$s = html_entity_decode("[ ]");
$s = str_replace($nbsp, " ", $s);
echo $s;
возможно \ xa0, это не допустимая строка Unicode, поэтому с помощьюрезультат html_entity_decode () может быть более подходящим для замены текста вместо \ xa0.
Объяснение BalusC выглядит правдоподобно, вы можете попытаться вставить utf-8 \ xc2 \ xa0 в тогда пытаясь отобразить его как латинскийвместо utf8, если вы хотите использовать Unicode, вы должны хранить кодировку utf-8 везде, от кодировки сервера до базы данных, так как у вас будет такая же проблема при использовании, например, à