Cómo convertir cadenas a y desde matrices de bytes UTF8 en Java
En Java, tengo una cadena y quiero codificarla como una matriz de bytes (en UTF8, o alguna otra codificación). Alternativamente, tengo una matriz de bytes (en alguna codificación conocida) y quiero convertirla en una cadena de Java. ¿Cómo puedo hacer estas conversiones?
224
3
Convertir de String a byte[]:
Convertir de byte[] a String:
Por supuesto, debe utilizar el nombre de codificación correcto. Mis ejemplos utilizan US-ASCII y UTF-8, las dos codificaciones más comunes.
Se puede convertir directamente mediante el constructor String(byte[], String) y el método getBytes(String). Java expone los conjuntos de caracteres disponibles a través de la clase Charset. La documentación del JDK enumera las codificaciones soportadas.
El 90% de las veces, estas conversiones se realizan en flujos, por lo que se utilizan las clases Reader/Writer. No deberías decodificar incrementalmente usando los métodos String en flujos de bytes arbitrarios - te expondrías a errores relacionados con caracteres multibyte.