Java trabaja con caracteres usando 16 bits por
carácter, según la norma internacional Unicode.
Hay varios convenios para utilizar bytes (8 bits) para representar caracteres
(16 bits). Los más habituales son:
iso-8859-1
Sólo sirve para caracteres que usan 8 bits
(es decir, de los 16 bits del carácter, los 8 primeros son ceros). Para
transformar el carácter en un byte, simplemente se ignoran los 8 primeros bits.
Para transformar un byte en carácter, se le añaden 8 bits delante.
Esta codificación es suficiente para los
lenguajes del suroeste de Europa (lenguas latinas).
UTF-8
Sirva para codificar cualquier carácter
unicode.
El convenio se especifica en la norma RFC2279.
Puede ver una descripción en [http://es.wikipedia.org/wiki/UTF-8].
UTF-16BE
UTF-16LE
Estos formatos sirven para codificar
cualquier carácter unicode. Se limitan a partir los 16 bits del carácter en 2
bytes de 8 bits cada uno. La diferencia entre los dos formatos es el orden en
que se ponen los 2 bytes.
El convenio se especifica en la norma RFC2781.
Puede ver una descripción en la [http://en.wikipedia.org/wiki/UTF-16/UCS-2].
Si no se dice nada, se utiliza el valor por
defecto, que puede conocerse por medio del método:
Charset Charset.defaultCharset()
El conjunto de todas las codificaciones
disponibles depende de cada plataforma. Para conocer los que tiene puede usar
el método
SortedMap<String, Charset> Charset.availableCharsets()
Temas relacionados
Vademécum
Ejemplos
Utilización en ficheros (lectura y escritura)