Può dipendere dalla codifica del db(che non so com'e')

Prima di mandare a db prova ad aggiungere al valore utf8_encode($valore) e vedi se si risolve oppure se viene encodato a db nella visualizzazione usa utf8_decode($valore_preso_da_db)