Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 24/06/14, 13:51:58
Avatar de AppDevMob
AppDevMob AppDevMob no está en línea
Usuario novato en la web
Mensajes: 2
 
Fecha de registro: jun 2014
Mensajes: 2
Modelo de smartphone: Samsung Galaxy S5
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
triste Problema con la Ñ y GetString()

Antes e Nada... partimos de que soy NOVATO.
Si el tema ha sido tratado en el foro ... llevo 2 horas mirando y nada. Probablemente no lo haya visto... y pido disculpas.

Mi problema... SQLITE o Cursor...
al leer un registro de la bbd el cual contiene un campo string con la letra "ñ" o con tíldes.... me corta la palabra...

Ejemplo:
...
Cursor miCursor = mibasedatos.query(.....);
String palabra = micursor.getString(1);
...

en la base de datos está la palabra España
bien guardadita...con su "ñ"

el getString() me devuelve "Espa"

Gracias de antemano... dándole vueltas !!
Responder Con Cita


  #2  
Viejo 24/06/14, 15:17:23
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Prueba así:

String palabra = new String(micursor.getString(1).getBytes(), "UTF-8")
Responder Con Cita
  #3  
Viejo 24/06/14, 15:31:31
Avatar de AppDevMob
AppDevMob AppDevMob no está en línea
Usuario novato en la web
Mensajes: 2
 
Fecha de registro: jun 2014
Mensajes: 2
Modelo de smartphone: Samsung Galaxy S5
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
Prueba así:

String palabra = new String(micursor.getString(1).getBytes(), "UTF-8")
Gracias KriogeN.
pero sigue sin funcionar...

este es el pedazo de código:

Cursor mCursor =
bdatos.query(true, Tabla, new String[] { ID ,NOMBRE}, null, null, NOMBRE, null, NOMBRE + " ASC", null);

if (mCursor.getCount() > 0) {

arrayaux =
new String[mCursor.getCount()];

mCursor.moveToFirst();
int i = 0;

do {

try {

arrayaux[i] =
new String(mCursor.getString(1).getBytes(),"UTF-8");

}
catch (UnsupportedEncodingException e) {

// TODO Bloque catch generado automáticamente

e.printStackTrace();
}
i++;
}
while (mCursor.moveToNext());

}
Responder Con Cita
  #4  
Viejo 28/06/14, 19:06:18
Avatar de Bongiovi
Bongiovi Bongiovi no está en línea
Miembro del foro
Mensajes: 186
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
Mencionado: 0 comentarios
Tagged: 0 hilos
Comentar que yo tuve exactamente el mismo problema. Como no encontraba solución opté por una solución algo "chapuza": en la base de datos puse el par de campos que llevaban letra "ñ" con "n" (es decir, en la base de datos rellenar con Espana). Después, una vez que tenía el campo de la base de datos en el String correspondiente, mediante un if-else if, corregía el valor del String por el correcto.

Código:
String tuString = ...
if(tuString.equals("Espana"))
      tuString = "España";
Obviamente esta solución solo es factible si tiene problemas con un número limitado de campos. A mi me dio el apaño.

Un saludo.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 20:57:43 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007