Probabilmente non li modifica per lo stesso motivo per cui te li visualizza male, tu li vedi così ma è solo una rappresentazione errata di quello che è veramente, probabilmente str_replace neanche riesce ad interpretarlo bene....