he ahí un problema bastante común con el que nos topamos todos los programadores hispanos.. no se cual sea tu base de datos, pero debes de verificar que en su configuración soporte y este compilada para soportar tipos de datos con charset latin o utf8, siempre me ha parecido un dolor de cabeza todo eso, me he visto varias veces compilando en gentoo por este tipo de problemas, en el que si fuera un programador de habla inglesa no perdería tiempo, pero bueno.
Otra cosa que hago comunmente es utilizar funciones como
CGI.escapeHTML para convertir todos esos caracteres especiales del español a caracteres normales cuando los meta en la BD y al sacarlos los vuelvo a convertir con
CGI.unescapeHTML, si es que los necesito para algo ke no sea mostrarlos. Esto ademas le agrega seguridad a tu aplicación, ya que escapas comillas que podrian ser usadas para SQL injection en alguna forma de tus usuarios.
Es el equivalente de la funcion
htmlentities y
html_entity_decode por si estas familiarizado con PHP