0

Extraigo los datos de una BBDD a través de un conector, pero a la hora de mostrármelos en una lista en un jsp me los muestra así:

Así me muestra los datos

¿Como puedo formatear los Strings al sacarlos o que puedo hacer para que me los muestre con sus tildes y las ñ??

Gracias.

Con este código extraigo:

con = new c(HOST, PORT, USER_PASS);

        rs = (c.Flip) con.k(query);

        for(int fila = 1; fila < con.n(rs.y[0]); fila++){
            for(int col = 0; col < rs.x.length; col++){
                if(con.at(rs.y[col], fila)!=null){       
                   dataStr = con.at(rs.y[col], fila).toString(); 

                }

                if(dataStr!=null){
                    if(!dataStr.matches(".*\\d+.*")){
                        muni.setName(dataStr);                            
                    } else if (!dataStr.contains("-")){
                        muni.setNhab(dataStr);
                        data = data + Integer.valueOf(dataStr);
                        if(selectedMuni.contains(muni.getName())){
                            muni.setBool("true");
                        } else {
                            muni.setBool("false");
                        }
                    } 

                }  
            }
            result.add(muni);

Con este código muestro:

<%@page contentType="text/html" pageEncoding="UTF-8"%>    
<c:forEach var="municipio" items="${requestScope.municipios}">
<option value="${municipio.name}" <c:if test="${municipio.bool eq 'true'}">selected</c:if>>${municipio.name}</option>`<c:forEach var="municipio" items="${requestScope.municipios}">
ZiPoTaTo
  • 35
  • 6

2 Answers2

0

Depende mucho del sistema gestor de bases de datos (MySQL, Oracle, PostegreSQL, por nombrar algunos) que estés utilizando y de como hallas definido el campo que estás consultando.

En principio Java no tiene problema en representar en tildes y ñs porque la clase String trabaja con una codificación UTF-16 como dice en la API de Java 7:

A String represents a string in the UTF-16 format in which supplementary characters are represented by surrogate pairs (see the section Unicode Character Representations in the Character class for more information). Index values refer to char code units, so a supplementary character uses two positions in a String.

Pero para que se vea mejor el problema sería bueno que compartieras el código donde consultas de la base de datos y donde muestras.

Para solucionar este tipo de errores me parece interesante el método que se propone en esta respuesta, aunque sea PHP y no Java creo que se pueden extraer la ideas más importantes.

jpuriol
  • 353
  • 1
  • 3
  • 10
0

Por lo que parece, tu modo de presentación de datos deberían ser JSPs.

Por tanto, deberías decir a tus páginas que estás codificándolas como UTF-16.

Como dicen en esta respuesta para que aparezcan las páginas JSP con esa codificación, debes añadirles:

<%@ page contentType="text/html; charset=UTF-16" %>

Por otra parte, deberás configurar también tu base de datos con el mismo encoding para evitar problemas.