
Originariamente inviata da
.Kurt
Non ha funzionato perché il sorgente è stato salvato con una codifica differente dalla stringa "
$ciao". Quando tu scrivi
codice:
str_replace("°","GIOVANNI",$ciao)
Sia "°" che $ciao devono condividere la stessa codifica. In caso contrario il carattere (o meglio, il point code) "°" nella codifica A (utilizzata per salvare il sorgente del file) potrebbe avere un valore differente nella codifica B di $ciao (o non esiste proprio), il risultato di questa operazione è una string a corrotta.
Per chiarirti questa cosa, immagina di salvare il sorgente in utf-8. Se la mia stringa è "°", allora avrà al suo interno due byte, "\xc2\xb0". Se invece lo salvo in ascii esteso, allora quello stesso carattere si codifica utilizzando uno e un solo byte. str_replace si limita a sostituire byte,
non caratteri. L'errore è assumere il contrario.