• Domingo 17 de Noviembre de 2024, 20:28

Autor Tema:  Problema de codificación  (Leído 2829 veces)

vrash

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Problema de codificación
« en: Miércoles 22 de Septiembre de 2010, 21:48 »
0
Hola, tengo un problema con la codificación de un String cuando lo recojo de una base de datos MySQL (ñ y acentos) usando el servidor Tomcat 6.

Suponiendo que en MySQL tengo una tabla llamada op que muestra lo siguiente al hacer un SELECT:
Código: SQL
  1.  
  2. mysql> SELECT * FROM op;
  3. +------+
  4. | op   |
  5. +------+
  6. | ñ    |
  7. +------+
  8. 1 ROW IN SET (0.00 sec)
  9.  
  10.  

En mi servlet tengo algo parecido a esto:
Código: Java
  1.  
  2. request.setAttribute("cad1", resultSet.getString("op"));
  3. request.setAttribute("cad2", "ñ");
  4.  
  5.  

Mando los datos usando forward a una pagina jsp donde tengo:
Código: Text
  1.  ${cad1} ${cad2} ${"ñ"} ñ
  2.  

Sorpresivamente (al menos para mi) la salida en la pagina web es esta:
Citar
¤ ñ ñ ñ

Que es lo que estoy haciendo mal??
Resalto poner los 4 datos, porque se pueden dar cuenta que el error ocurre solo cuando obtengo la String desde la bd.

He buscando durante horas en San Google e intentado muchas cosas que he encontrado y sigue el problema.
En este momento, tengo la tabla en MySQL con codificación UTF-8 al igual que la página jsp.
Ya he probado a cambiarles la codificación a ambas y nada.

Espero puedan ayudarme y de antemano muchas gracias por tomarse la molestia de leer mi problema.

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Problema de codificación
« Respuesta #1 en: Miércoles 22 de Septiembre de 2010, 23:23 »
0
en el jsp le coloco esto
Código: Text
  1. <%@ page contentType="text/html;charset=windows-1252"%>
  2. <html>
  3.   <head>
  4.     <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
  5.     <meta http-equiv="Pragma" content="no-cache,no-store,max-age=0"/>
  6.  

y  también puedes hacer esto

Código: Java
  1. byte[] stringValue = rs.getBytes("nombreColumna");
  2. String str = new String(stringValue,"iso-8859-1");
  3.  

hasta el momento no he usado la segunda opción.
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

vrash

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Problema de codificación
« Respuesta #2 en: Miércoles 22 de Septiembre de 2010, 23:50 »
0
Muchas gracias por tu respuesta juez, sin embargo, me temo que ninguna de las 2 soluciones resolvió mi problema.
Intente con la primera únicamente, y nada, después con la segunda únicamente y nada.
Al final use las dos a la vez y nada.
Seguiré buscando una solución.

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Problema de codificación
« Respuesta #3 en: Jueves 23 de Septiembre de 2010, 23:10 »
0
intenta cambiando el charset
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com