html_entity_decode конвертирует
в пробел, только не в "простой" (ASCII 32), а в неразрывный пробел (ASCII 160) (так как это определение
).
Если вам нужно преобразовать в ASCII 32, вам все равно потребуется str_replace()
или, в зависимости от вашей ситуации, preg_match("/s+", ' ', $string)
для преобразования всех видов пробелов в простые пробелы.