Foros del Web » Programando para Internet » Android »

Problema com impresion de caracteres en Java

Estas en el tema de Problema com impresion de caracteres en Java en el foro de Android en Foros del Web. Buenas noches, La verdad no estoy seguro de que este hilo vaya ubicado en este subforo, pero les comento que me sucede, y en caso ...
  #1 (permalink)  
Antiguo 28/11/2010, 11:35
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Problema com impresion de caracteres en Java

Buenas noches,

La verdad no estoy seguro de que este hilo vaya ubicado en este subforo, pero les comento que me sucede, y en caso de que este equivocado, les pido mis mas sinceras disculpas.

Les cuento: Estoy haciendo una aplicacion para android, en la cual extraigo datos desde un RSS, y los imprimo por pantalla. Por ahora va todo bien, pero tengo el siguiente problema: Los titulos de los items que lleven comillas, java me los trunca, y solo me imprime un " (una comilla sola).

Por ejemplo, tengo el siguiente titulo: "Vengo para sumar" .... Java me imprime solo una comilla, tal como puse arriba.

Lo mismo me pasa con los "<", ">", y los caracteres asi.

Como dato importante: El codigo fuente del RSS no imprime las comillas , imprime un "&quot;" ... y eso es lo que le llega a Java, y lo imprime como comilla, pero omitiendo cualquier texto siguiente. Lo mismo para con los "<" y ">"...

No se si este problema tiene que ver con el codigo fuente del RSS, si es un problema de Android, o es un problema de Java. Sinceramente no se por donde encarar el problema, y agradeceria de corazon una ayuda por parte de ustedes.

Cualquier cosa que necesiten, me avisan, que los ayudare con gusto.

Saludos.
  #2 (permalink)  
Antiguo 15/01/2011, 03:59
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Problema com impresion de caracteres en Java

Me respondo a mi mismo, porque encontre la solucion de este problema hace mucho tiempo, y quizas a otras personas les sirva en un futuro:

Yo uso SAX para el parser, entonces el problema que tiene es que, cada Element que tiene el Nodelist que me genera, en caso de que tenga los simbolos que mencione arriba, los separa en nodos diferentes.
Mejor explicarlo con un ejemplo.

Si el titulo es: Hola Mundo , entonces, al no tener ningun simbolo raro, me lo pone todo en un nodo, por lo que la siguiente instruccion

Código Android:
Ver original
  1. Element titulo = (Element) entrada.getElementsByTagName(
  2.                             "title").item(0);
  3. String title = titulo.getFirstChild().getNodeValue();

Me devolveria: Hola Mundo


Ahora bien, si yo hago lo mismo de arriba para un titulo de un feed del tipo: A mi me dicen "Pepito", el codigo de arriba solo devuelve: A mi me dicen ", por que? Porque SAX divide en varios hijos al Element titulo, entonces, como yo en la segunda linea puse que me devuelva el primer hijo, solo me da la primera parte. En resumen: Tengo que hacer un bucle y concatenar todos los hijos para tener el titulo completo:

Código Android:
Ver original
  1. Element titulo = (Element) entrada.getElementsByTagName(
  2.                             "title").item(0);
  3. String title = titulo.getFirstChild().getNodeValue();
  4. NodeList titleshijos = titulo.getChildNodes();
  5. for (int k = 1; k < titleshijos.getLength(); k++) {
  6.     title += titleshijos.item(k).getNodeValue();
  7. }

Y listo, tema solucionado. Segun lei, es un problema que, hasta ahora, no le han encontrado solucion.

Saludos.

Última edición por MarioAraque; 15/01/2011 a las 04:04

Etiquetas: caracteres, impresion, java
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:58.