Hola tengo un problema un poco molesto, estoy haciendo todo mi proyecto en UTF 8 para evitar broncas con los caracters especiales, por el momento el despliegue de paginas esta bien pero cuando envio datos a la base de datos los caracteres con acentos se registran con los caracteres raros en la BD.
Todos mis archivos ya estan en UTF-8 sin BOM y la BD esta codificacada en UTF-8 tambien ¿cual podra ser el problema? Estoy pasando datos a la BD mediante este JSP:
FORMULARIO
Código:
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*"%>
<%@ include file="../dbop/conexion.jsp" %>
<%
HttpSession sesion1 = request.getSession(true);
String iden = (String) sesion1.getAttribute("ID");
String usuario = (String) sesion1.getAttribute("USER");
//Date acceso=new Date(sesion.getLastAccessedTime());
if((iden == null) && (usuario == null)){
response.sendRedirect("error.jsp");
}
%>
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<LINK rel="stylesheet" href="../bonito.css" type="text/css" media="screen">
<TITLE>Registro de miembros</TITLE>
<script src="../script.js">
</script>
</HEAD>
<BODY>
<CENTER>
<H1>REGISTRO</H1>
</CENTER>
<div><H2>Datos personales<H2></div>
<P class="ins">Contesta completamente los formularios</P>
<FORM action="../dbop/reg1.jsp" enctype="text/plain">
<CENTER> <TABLE class="formtab">
<TR>
<TD class="subt">Nombre Completo:</TD>
<TD><INPUT name="nombre" type="text"></TD>
</TR>
<TR>
<TD class="subt">Fecha de nacimiento :</TD>
<TD><INPUT name="ano" type="text" maxlength="4" size="4"><INPUT name="mes" type="text" maxlength="2" size="2"><INPUT name="dia" type="text" maxlength="2" size="2"></TD>
</TR>
<TR>
<td class="ind" colspan="2">El formato de la fecha debe de ser ano-mes-dia.<br>Se deben respetar numeros de un solo digito.</td>
</TR>
<TR>
<TD class="subt">Telefono (Casa/Oficina):</TD>
<TD><INPUT name="tel" type="text"></TD>
</TR>
<TR>
<td class="ind" colspan="2">Introduce solo numeros</td>
</TR>
<TR>
<TD class="subt">Celular:</TD>
<TD><INPUT name="cel" type="text"></TD>
</TR>
<TR>
<td class="ind" colspan="2">Introduce solo numeros</td>
</TR>
<TR>
<TD class="subt">E-mail:</TD>
<TD><INPUT name="email" type="text"></TD>
</TR>
<TR>
<TD class="subt">Estudios:</TD>
<TD><TEXTAREA name="estu" rows="4" cols="25"></TEXTAREA></TD>
</TR>
<TR>
<td class="ind" colspan="2">Separalos con ","</td>
</TR>
<TR>
<TD colspan="2"><input type="button" onClick="ValidarFormulario(this.form)" value="Registrar"></TD>
</TR>
</TABLE></CENTER>
</FORM>
</BODY>
</HTML>
JSP QUE GUARDA LOS DATOS
Código:
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*"%>
<%@ include file="conexion.jsp" %>
<%
HttpSession sesion1 = request.getSession(true);
String iden = (String) sesion1.getAttribute("ID");
String usuario = (String) sesion1.getAttribute("USER");
//Date acceso=new Date(sesion.getLastAccessedTime());
if((iden == null) && (usuario == null)){
response.sendRedirect("error.jsp");
}
Class.forName("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection(url, login, password);
statement = conn.createStatement();
String name = request.getParameter("nombre");
String a = request.getParameter("ano");
String d = request.getParameter("dia");
String m = request.getParameter("mes");
String tel = request.getParameter("tel");
String cel = request.getParameter("cel");
String em = request.getParameter("email");
String est = request.getParameter("estu");
String fecha = a +"-"+ m +"-"+ d;
int cons;
String qry,men,idus,sn;
sn="SET NAMES 'utf8'";
snames = conn.createStatement();
snames.executeUpdate(sn);
qry = "INSERT INTO miembros VALUES ";
qry += "(null," + "'" +name+ "','" +fecha+ "','" +tel+ "','" +cel+ "','"+em+"','" +est+ "')";
cons = statement.executeUpdate(qry);
Statement stmt = null;
ResultSet rs1 = null;
stmt = conn.createStatement();
if(cons > 0){
men = "SELECT id FROM miembros WHERE nombre='"+name+"'";
rs1 = stmt.executeQuery(men);
if(rs1.next()){
idus = rs1.getString("id");
sesion1.setAttribute("IDUS",idus);
response.sendRedirect("/prueba/registro/forms/proyr.jsp");}
}
else{
men = "No se ha podido agregar el registro";
out.println("<head>");
out.println("<LINK rel='stylesheet' href='../bonito.css' type='text/css' media='screen'>");
out.println("<title> Registro</title></head>");
out.println( "<div align='center'>");
out.println(men);
out.println( "<br><br>");
out.println("<a href='../forms/entrar.html'>");
out.println("Regresar");
out.println( "</a>");
out.println("</div>");
}
statement.close();
%>