En la base de datos es importante tener en cuenta el cotejamiento que utilizaste.
Por ejemplo, deberías usar alguno como latin1 o utf8_spanish_ci por ejemplo, o sea, uno que soporte los caracteres hispanos.
Luego el problema no es directamente de Javascript tampoco, es más de un lenguaje de servidor (seguramente en tu caso php). Esto se debe a que una vez que php traiga los datos como corresponde (o sea, con ñ y tildes), al plasmarlas en el html, éstas figurarán como sus propios caracteres, que no son soportados por html, y van a aparecer por ese motivo caracteres extraños.
Lo que tienes que hacer, es definir una función propia con la cual transformar al imprimir los caracteres hispanos a sus correspondientes en html. Esa función podría ser por ejemplo:
Código php:
Ver originalfunction properHTML($cadena)
{
$buscar = array("á", "é", "í", "ó", "ú", "ñ", "Á", "É", "Í", "Ó", "Ú", "Ñ") $reemplazar = array("á", "é", "í", "ó", "ú", "ñ", "Á", "É", "Í", "Ó", "Ú", "Ñ"); }
Le pasas la cadena que quieres "normalizar", y devolverá la misma cadena, pero con sus equivalentes válidos de acentos y ñs (puedes agregarle además cualquier caracter que desees).
Saludos