Foros del Web » Programación para mayores de 30 ;) » Java »

No obtengo caracteres con tilde.

Estas en el tema de No obtengo caracteres con tilde. en el foro de Java en Foros del Web. Hola: Tengo el siguiente problema con caracteres con tilde: Por ejemplo, cuando pongo: System.out.println( 'ó' ); Me sale en la consola el ó con la ...
  #1 (permalink)  
Antiguo 21/03/2013, 18:43
 
Fecha de Ingreso: octubre-2006
Mensajes: 267
Antigüedad: 17 años, 6 meses
Puntos: 6
Pregunta No obtengo caracteres con tilde.

Hola:

Tengo el siguiente problema con caracteres con tilde:

Por ejemplo, cuando pongo:

System.out.println( 'ó' );


Me sale en la consola el ó con la tilde. Muy bien hasta ahí. Ahora si pongo:

System.out.println((byte) 'ó' );


Me sale en la consola el número -13, que es el valor del byte para la O con tilde. Pero si pongo:

System.out.println((char) -13 );


Me sale en la consola un cuadradito. ¿Cómo obtengo nuevamente la O con tilde a partir del valor -13?

Gracias.
  #2 (permalink)  
Antiguo 22/03/2013, 02:17
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: No obtengo caracteres con tilde.

Un byte tiene solo 256 valores, de los que la mitad son negativos.

Un char es un integer, 4 bytes. Hay más caracteres que 256.

Bytes y char son cosas distintas, cuando conviertes un char en byte, realmente lo estás truncando.

'ó' realmente es 243, no -13.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 22/03/2013, 02:23
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: No obtengo caracteres con tilde.

Prueba

System.out.println((int) 'ó' );

y a ver qué te sale. Un byte va de 0 a 128. Si te sale -13, es porque en realidad es un número superior a 128. De hecho, sale 243 (en la codificación que estoy usando yo cp1252 ). Así que

System.out.println((char)243);

debería funcionarte

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 22/03/2013, 11:16
 
Fecha de Ingreso: octubre-2006
Mensajes: 267
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: No obtengo caracteres con tilde.

Interesante. Sucede que confundi el tipo byte que se usa en Delphi cuyos valors son positivos y van de 0 a 255. Muchas gracias por la aclaracion. Esta tarde hago mis pruebas. Saludos.

Etiquetas: caracteres
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 16:49.