Originariamente inviato da daniele_dll
prova con
codice:
static function encodeTitle($title) {
    $encoded = strtr(utf8_decode($title), array(' ' => '-', 'à' => 'a', 'è' => 'e', 'é' => 'e', 'ì' => 'i', 'ò' => 'o', 'ù' => 'u'));
    $encoded = preg_replace('#[^a-z0-9-]#i', '', $encoded);
    $encoded = strtolower($encoded);
    return $encoded;
}
già provato ma non cambia nulla...

dove specifichi che la connessione è di tipo UTF-8?
nel documento HTML
codice:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
altra domanda la imposti nella connessione al database?
No, quando faccio operazioni, sia di lettura che di scrittura, non imposto alcun charset...dovrei? Il database l'ho creato impostando come collation utf8_unicode_ci.

o ancora ... effettui operazioni sulle stringhe ricevute dal browser (operazioni di qualsiasi genere come ad es conversione a caratteri maiuscoli o minuscoli, tagli, lettura di spezzoni e cosi via)?
No, nessuna manipolazione di HTTP Response o quantaltro...le uniche cose che uso che centrano con i messaggi HTTP sono ob_start() e session_start().