illegal encodebase64 convertir convert bytes array java arrays string

encodebase64 - ¿Cómo convertir Java String en byte[]?



java convert file to base64 string (9)

¿Hay alguna forma de convertir la String Java en un byte[] ( no en el Byte[] caja Byte[] )?

Al intentar esto:

System.out.println(response.split("/r/n/r/n")[1]); System.out.println("******"); System.out.println(response.split("/r/n/r/n")[1].getBytes().toString());

y estoy obteniendo salidas separadas. No se puede mostrar la primera salida, ya que es una cadena gzip.

<A Gzip String> ****** [B@38ee9f13

El segundo es una dirección. ¿Hay algo que estoy haciendo mal? Necesito el resultado en un byte[] para alimentarlo al descompresor gzip, que es el siguiente.

String decompressGZIP(byte[] gzip) throws IOException { java.util.zip.Inflater inf = new java.util.zip.Inflater(); java.io.ByteArrayInputStream bytein = new java.io.ByteArrayInputStream(gzip); java.util.zip.GZIPInputStream gzin = new java.util.zip.GZIPInputStream(bytein); java.io.ByteArrayOutputStream byteout = new java.io.ByteArrayOutputStream(); int res = 0; byte buf[] = new byte[1024]; while (res >= 0) { res = gzin.read(buf, 0, buf.length); if (res > 0) { byteout.write(buf, 0, res); } } byte uncompressed[] = byteout.toByteArray(); return (uncompressed.toString()); }


El objeto que necesita su método decompressGZIP() es un byte[] .

Así que la respuesta básica y técnica a la pregunta que ha formulado es:

byte[] b = string.getBytes(); byte[] b = string.getBytes(Charset.forName("UTF-8")); byte[] b = string.getBytes(StandardCharsets.UTF_8); // Java 7+ only

Sin embargo, el problema con el que parece estar luchando es que esto no se muestra muy bien. Llamar a toString() solo te dará el Object.toString() predeterminado, que es el nombre de la clase + dirección de memoria. En su resultado [B@38ee9f13 , la [B significa byte[] y 38ee9f13 es la dirección de la memoria, separada por una @ .

Para fines de visualización puede utilizar:

Arrays.toString(bytes);

Pero esto solo se mostrará como una secuencia de enteros separados por comas, que pueden o no ser lo que quieres.

Para recuperar una String legible de un byte[] , use:

String string = new String(byte[] bytes, Charset charset);

La razón por la que se Charset versión de Charset es que todos los objetos String en Java se almacenan internamente como UTF-16. Al convertir a un byte[] obtendrá un desglose de bytes diferente para los glifos dados de esa String , dependiendo del conjunto de caracteres elegido.


Es posible que return new String(byteout.toByteArray(Charset.forName("UTF-8"))) intentar return new String(byteout.toByteArray(Charset.forName("UTF-8")))


No es necesario cambiar java como un parámetro de cadena. Tienes que cambiar el código c para recibir una cadena sin un puntero y en su código:

Bool DmgrGetVersion (String szVersion); Char NewszVersion [200]; Strcpy (NewszVersion, szVersion.t_str ()); .t_str () applies to builder c ++ 2010


Puede usar String.getBytes() que devuelve la matriz de byte[] .


Sé que llego un poco tarde a la fiesta pero esto funciona bastante bien (nuestro profesor nos lo dio)

public static byte[] asBytes (String s) { String tmp; byte[] b = new byte[s.length() / 2]; int i; for (i = 0; i < s.length() / 2; i++) { tmp = s.substring(i * 2, i * 2 + 2); b[i] = (byte)(Integer.parseInt(tmp, 16) & 0xff); } return b; //return bytes }


Simplemente:

String abc="abcdefghight"; byte[] b = abc.getBytes();


Trate de usar String.getBytes (). Devuelve un byte [] que representa datos de cadena. Ejemplo:

String data = "sample data"; byte[] byteData = data.getBytes();


String example = "Convert Java String"; byte[] bytes = example.getBytes();


import java.io.UnsupportedEncodingException; import java.util.Arrays; public class ConvertStringtoByte { public static void main(String[] args) throws UnsupportedEncodingException { String givenString = ""; System.out.println(givenString ); byte[] byteValue = givenString .getBytes(); System.out.println(Arrays.toString(byteValue )); byte[] byteValueAscii= letters.getBytes("US-ASCII"); System.out.println(Arrays.toString(byteValueAscii)); } }