Salve, ho intenzione di usare il charset UTF-8 per l'intero progetto che sto sviluppando.
Quindi supponiamo di avere il database in utf8. Ci sono due possibilità:

1) l'utente inserisce una stringa con caratteri accentati (ad esempio) e quindi vengono convertiti in htmlentities e poi salvati nel database. Quando questi dati verranno printati in html non ci sarà bisogno di operare alcuna codifica.

2) l'utente inserisce una stringa con caratteri accentati, ma non vengono convertiti in entità html, vengono salvati così come sono nel database. Quando questi dati verranno printati in html, verranno prima codificati usando htmlentities.

conclusioni:
la soluzione 1 è più performante in quanto la funzione htmlentities viene richiamata solo una volta
la soluzione 2 è più elegante e consente di "separare" (nel mio caso) il codice che gestisce dati, inserendo htmlentities nella pagine che utilizzano le mie classi, e non dentro le classi stesse.

quindi:
cosa mi consigliate???