So che il tema degli apostrofi è stato dibattuto in diverse discussioni ma rileggendole, non ho trovato quanto fa al caso mio, per cui ritorno sull'argomento.
Ho un sito in cui gli utenti inseriscono dei testi (delle opere letterarie) in un form che passa il tutto ad una pagina PHP che salva i dati su un dabatase MySql.
Le pagine sono codificate come UTF-8 e il database usa collation latin1_bin.
Nella pagina che riceve i dati uso questa funzione per sistemare il testo:
codice:
function correggi_testo($testo)
{
$testo_temporaneo=$testo;
$testo_temporaneo=str_replace("’","'",$testo_temporaneo);
$testo_temporaneo=str_replace("‘","'",$testo_temporaneo);
$testo_temporaneo=str_replace("`","'",$testo_temporaneo);
$testo_temporaneo=utf8_decode($testo_temporaneo);
$testo_temporaneo=mysql_escape_string($testo_temporaneo);
return $testo_temporaneo;
}
Le prime righe hanno la funzione di sostituire apostrofi speciali messi dai programmi di videoscrittura (come Word) con l'apostrofo dritto ' che altrimenti non sarebbero supportati da utf8_decode(). Questo nelle mie intenzioni, perchè in realtà la funzione non svolge il suo compito: se inserisco ad esempio il testo "guarda quell’albero" viene trasformato in "guarda quell?albero".
Mi sapete dire dove sbaglio e come posso rimediare?
Grazie mille