Lo ideal es no meter nunca caracteres especiales en una base de datos, es mejor utilizar caracteres estándar html (por ejemplo á
, ñ
, etc). De esa forma, se podrán extraer de la base de datos sin ninguna operación adicional, y se podrán mostrar en cualquier navegador de cualquier país.
Si ya tienen una base de datos con caracteres especiales dentro, y por alguna razón no pueden convertirlos a html, se pueden extraer desde Java así:
<%@ page contentType="text/html; charset=iso-8859-1" %>
En cada ResultSet rs que lleve texto, en lugar de rs.getString("CAMPO");
hay que utilizar una variable auxiliar:
byte[] aux = rs.getBytes("CAMPO");
String cadena = new String(aux,"iso-8859-1");
La tabla de códigos puede ser iso-8859-1 como en el ejemplo o cualquier otra que utilice su aplicación (utf-8, etc).
Al no utilizar caracteres estándar html, los caracteres especiales sólo se verán bien en casi todos los navegadores de países hispanohablantes.