Acceder

Ver la Versión Completa : [ CONSULTA ] Problema con la Ñ y GetString()


AppDevMob
24/06/14, 13:51:58
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 !!

kriogeN
24/06/14, 15:17:23
Prueba así:

String palabra = new String(micursor.getString(1).getBytes(), "UTF-8")

AppDevMob
24/06/14, 15:31:31
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());

}

Bongiovi
28/06/14, 19:06:18
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.


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.