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

[SOLUCIONADO] Codificacion de caracteres

Estas en el tema de Codificacion de caracteres en el foro de Java en Foros del Web. Segun entendi a partir de la creacion del Unicode todos los formatos de codificacion tienen el mismo numero para cada caracter ? y eso de ...
  #1 (permalink)  
Antiguo 07/10/2013, 19:44
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Codificacion de caracteres

Segun entendi a partir de la creacion del Unicode todos los formatos de codificacion tienen el mismo numero para cada caracter ?
y eso de los ISO se asigna uno para cada alfabeto? el que usamos nosotros gralmente es ISO 8859-1?

cuando pedimos bytes en un .read() en que codificacion se pasan? es imposible que sea un formato de 16bits no?

como hago para setear otra codificacion?
  #2 (permalink)  
Antiguo 08/10/2013, 01:29
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Codificacion de caracteres

Pues no has entendido mucho.

Los distintos encodings que se han ido creando mantienen el orden de anteriores para facilitar la compatibilidad, por eso los primeros caracteres de UTF coinciden con ASCII.

Tu problema es que no acabas de entender que un byte es un número, y que un encoding no es más que un convenio para relacionar una letra con un número de bits para poder trabajar con ellos.

Cuando pides un byte, obtienes un byte, es decir, un número entre 0 y 255. A la hora de pasarlo a un fichero o pantalla como letra tú le dices que encoding quieres usar, si no le indicas nada Java por defecto usa el del sistema operativo, pero internamente Java utiliza UTF-16.

Piensa en la equivalencia es char = int, teniendo en cuenta que int en java son 4 bytes, verás que la relación es clara con los 4 bytes de UTF-16.
__________________
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.

Última edición por Xerelo; 08/10/2013 a las 01:59
  #3 (permalink)  
Antiguo 08/10/2013, 08:03
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Codificacion de caracteres

Cita:
Iniciado por Xerelo Ver Mensaje
Pues no has entendido mucho.

Los distintos encodings que se han ido creando mantienen el orden de anteriores para facilitar la compatibilidad, por eso los primeros caracteres de UTF coinciden con ASCII.

Tu problema es que no acabas de entender que un byte es un número, y que un encoding no es más que un convenio para relacionar una letra con un número de bits para poder trabajar con ellos.

Cuando pides un byte, obtienes un byte, es decir, un número entre 0 y 255. A la hora de pasarlo a un fichero o pantalla como letra tú le dices que encoding quieres usar, si no le indicas nada Java por defecto usa el del sistema operativo, pero internamente Java utiliza UTF-16.

Piensa en la equivalencia es char = int, teniendo en cuenta que int en java son 4 bytes, verás que la relación es clara con los 4 bytes de UTF-16.
y eso de ISO son diferentes encodings?
cuando pido un .read() entonces que encoding usa? tiene que ser uno que use 1 byte no?
y que pasa si el metodo .read() tiene q devolver el punto de codigo de un carácter que requiere 2 bytes? osea q este mas arriba del numero 255

Última edición por iivo94; 08/10/2013 a las 12:27
  #4 (permalink)  
Antiguo 08/10/2013, 12:45
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Codificacion de caracteres

ISO es un tipo de encoding, y como 8 bits no llegan para contener todos los tipos de alfabetos existen varias versiones, la más conocida es la Latin.

Con respecto a lo que devuelve el read, pues depende de que clase estes utilizando, los Readers están pensados para leer flujos con texto, por lo que pueden devolver un caracter interpretado según el encoding especificado.

Si pides un byte, eso es lo que obtendrás, un número, pero no tiene por qué corresponderse con el caracter que pretendes leer, ya que por ejemplo en UTF-8 hay caracteres que están compuestos por 2 bytes.
__________________
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.
  #5 (permalink)  
Antiguo 08/10/2013, 12:57
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Codificacion de caracteres

osea que con el metodo .read() no voy a poder leer todos los tipos de caracteres, sino los mas basicos no?
bueno ya masomenos tengo una idea gracias xerelito te quiero

Etiquetas: caracteres, codificacion
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:59.