Autor
|
Tema: [Ayuda - Android] TextView no reconoce caracteres especiales <?> (Leído 13,909 veces)
|
PabloPbl
Desconectado
Mensajes: 188
|
Pues tengo un TextView que lo agrego desde el xml que por defecto lo dejo vacio para luego desde el código java poner algún texto como consecuencia de una acción de un botón.
Resulta que al momento de setear el texto del TextView desde el código, los caracteres especiales como las tilde por ejemplo, se muestran así <?> y no como debería ser.
He intentando metiendo una codificación UTF-8 dentro del xml donde va el TextView, pero nada, al momento de mostrarse no me reconoce esos caracteres.
¿Alguien sabe que tengo que especificar y cómo?
|
|
« Última modificación: 7 Abril 2015, 17:01 pm por PabloPbl »
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
Prueba obteniendo los bytes del String en UTF8 y luego mantienes el UTF8 obteniendo un nuevo String a partir de HTML: try { ("TU_TEXTO").getBytes("ISO-8859-1"), "UTF-8"); String encodedText = Html. fromHtml(text ). toString(); textView.setText(encodedText); } catch(UnsuportedEncodeException e) { // mostrar el error al usuario o en un log } }
Saludos.
|
|
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
PabloPbl
Desconectado
Mensajes: 188
|
Hola Gus, muchas gracias de antemano.
Pero en la segunda linea estas haciendo referencia a una variable "c" si no me equivoco que no existe, y me da error.
|
|
« Última modificación: 6 Abril 2015, 15:44 pm por PabloPbl »
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
En efecto, c es un Resources (obtiene los strings del XML). Pero prueba con:
No le hemos pasado un Charset porque según veo en la API de Android, por defecto es UTF-8. Prueba a ver qué tal.
|
|
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
PabloPbl
Desconectado
Mensajes: 188
|
He probado el código pero sigue sin funcionarme Lo he puesto de la siguiente manera: try{ String encodedText = Html. fromHtml(text ). toString(); tv1.setText(encodedText); String encodedText2 = Html. fromHtml(text2 ). toString(); tv2.setText(encodedText2); } Toast.makeText(this, "Error encodec", Toast.LENGTH_LONG).show(); }
He descubierto que si agrego todo el texto que quiero que se muestre en el TextView, me lo hace y me lo muestra correctamente, pero si intento cambiar el valor del TextView desde el código Java me lo muestra mal. ¿No sera que algo debo especificar algo en mi código?
|
|
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
Imprime encodedText2, ¿el String mantiene las tildes?
|
|
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
PabloPbl
Desconectado
Mensajes: 188
|
He hecho la impresión de 3 formas y me muestra ese signo <?> en vez de las tildes, osea no mantiene las tildes: Toast.makeText(this, encodedText, Toast.LENGTH_LONG).show(); System. out. println(encodedText ); Log.e("IMPRESIÓN", encodedText);
|
|
|
En línea
|
|
|
|
PabloPbl
Desconectado
Mensajes: 188
|
Bueno después de cansarme y cansarme probando en busca de soluciones, di en el blanco. Pues resulta que para me haga la codificación, tenia que si o si obtener los String del xml donde se guardan los Strings(string.xml) y de ahí hacer la codificación. String text = newString(getString(R.string.activity_MostrarImagen_tituloEjecucion).getBytes(), "UTF-8"); String encodedText = Html.fromHtml(text).toString(); tv1.setText(encodedText);
Pues lo que ya hacia era poner un String directamente en el código y no obteniéndolo del xml. Por lo menos eso resolvió mi problema. Salu2 y muchas gracias a todos.
|
|
« Última modificación: 7 Abril 2015, 17:04 pm por PabloPbl »
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
Jaja, ya había leído de strings.xml pero pensé que era un poco redundante tener los Strings en un XML cuando el TextView puede cambiar de contenido en tiempo de ejecución y por ejemplo por intervención del usuario. Creo que debe haber una manera más práctica. Investigaré a ver que encuentro.
Un saludo.
|
|
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
PabloPbl
Desconectado
Mensajes: 188
|
xD, El string.xml mas que nada sirve para poder internacionalizar la aplicación, osea poder tener la app en distintos idiomas. Tu tienes varios xml con los mismos punteros, solo que con diferentes valores, y a valores me refiero a el texto que usara la App para mostrar texto, pues esos valores los puedes poner en diferentes idiomas. Cada xml sera para un idioma en particular. Entonces cuando tu usas la App en una teléfono con un idioma en concreto, pues Android detectara que archivo xml se usara para la App, cabe destacar que para eso tienes que poner unos nombres a los xml para que Android sepa cual usar en cada caso. Salu2
|
|
« Última modificación: 10 Abril 2015, 04:43 am por PabloPbl »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Caracteres especiales
PHP
|
chicuela66
|
2
|
2,903
|
12 Enero 2007, 14:25 pm
por 5n4K3
|
|
|
caracteres especiales
Scripting
|
flony
|
0
|
2,544
|
1 Junio 2010, 03:27 am
por flony
|
|
|
Caracteres Especiales en TextBox [Ayuda]
Programación Visual Basic
|
Psyke1
|
6
|
10,344
|
29 Julio 2010, 10:39 am
por Psyke1
|
|
|
Ayuda: ¿Caracteres especiales con PHP?
Desarrollo Web
|
Argentino Canejo
|
3
|
3,956
|
8 Octubre 2012, 02:21 am
por ~ Yoya ~
|
|
|
Ayuda con Caracteres especiales (html)
Desarrollo Web
|
andrecid
|
5
|
3,085
|
6 Abril 2015, 15:29 pm
por #!drvy
|
|