Oddio il replace mi sembra una toppa
Devi fare un piccolo controllo che la collation del database sia UTF-8, che le tabelle siano in UTF-8, che l'html sia in UTF-8.
Che il file php sia in UTF-8 e via discorrendo. Il csv potrebbe arrivare da fonti diverse suppongo, quindi non è detto che sia in UTF-8, quindi è corretto che lo normalizzi, ma una volta normalizzato non serve decodificarlo perché se la pagina che vai a visualizzare è in UTF-8 vedrai tutto correttamente.
Un accorgimento che può tornare utile è eseguire subito dopo la connessione al database
http://dev.mysql.com/doc/refman/5.0/...onnection.htmlcodice:SET NAMES 'utf8'
Può sembrare strano, ma se si entra nell'ottica che il charset sia univoco per tutte le fonti utilizzate si va via spediti.