¿Con que lenguaje de servidor estás trabajando?. Si trabajás con php, se nos hace bastante fácil guardar en la base de datos los registros con sus valores originales y cuando querés mostrarlos en tu página reemplazas las entidades html con la función htmlentities(). Aunque tampoco va a ser así de simple, fijate en este post:
http://www.forosdelweb.com/f86/mysql-character-set-660419/
Si trabajás con Asp, tendrás que hacer una función que te reemplaze los caracteres especiales por su respectiva entidad a la hora de mostrarlos.
En otros lenguajes no sabría decirte como hacerlo.
Si sobre el campo en cuestión vas a registrar búsquedas, entonces no te conviene guardarlos con entidades html.
Saludos.