Innanzi tutto non dovresti inserire nel database il testo codificato, le entita' HTML hanno senso quando mandi il testo in output a un browser -- al database quei caratteri non fanno niente.
Poi ormai per tutti i caratteri particolari "non standard" la cosa piu' corretta da fare e' usare il charset UTF8 e inserire i caratteri direttamente e non le loro entita' HTML. Si usa htmlspecialchars solo per mandare in output testo che potrebbe contenere tag HTML e si vuole mostrarle invece che farle interpretare.