Tengo que convertir una matriz de bytes a cadena en Android, pero mi matriz de bytes contiene valores negativos.cómo convertir una matriz de bytes a una cadena y viceversa
Si vuelvo a convertir esa cadena en matriz de bytes, los valores que obtengo son diferentes de los valores originales de la matriz de bytes.
¿Qué puedo hacer para obtener la conversión adecuada? El código que estoy usando para hacer la conversión es el siguiente:
// Code to convert byte arr to str:
byte[] by_original = {0,1,-2,3,-4,-5,6};
String str1 = new String(by_original);
System.out.println("str1 >> "+str1);
// Code to convert str to byte arr:
byte[] by_new = str1.getBytes();
for(int i=0;i<by_new.length;i++)
System.out.println("by1["+i+"] >> "+str1);
Estoy atascado en este problema.
¿Por qué intentas convertir datos binarios arbitrarios en una cadena en primer lugar?Además de todos los problemas de juego de caracteres que las respuestas ya mencionan, también está el hecho de que estás abusando de String si haces esto. ¿Qué hay de malo en usar un 'byte []' para tus datos binarios y 'String' para tu texto? –
@Joachim: a veces tiene herramientas externas que pueden hacer cosas como cadenas de tiendas. En ese caso, desea poder convertir una matriz de bytes en una cadena (codificada de alguna manera). –