Java 字节[]到字符串和字符串到字节[]保持信息不变

Java 字节[]到字符串和字符串到字节[]保持信息不变,java,string,bytearray,Java,String,Bytearray,我有一个字符串的字节数组 如何将字节[]转换为字符串和字符串转换为字节[] 压缩后,我得到字节数组形式的压缩值。 byte[]系统输出处的值为 h?ö\ É·ë’YO¸p˜à¼Œ[䔽"$žQºÍCïηfØzöÛBi¤!< hö\ ëëYO¸p뼌[듽”$žQëCë206;·fØzö219; Bi!< 如何将此字节数组值转换为String并保持其值不变,然后将其返回字节数组进行解压缩? 尝试了内置函数,但它们更改了整个压缩字节数组尝试新字符串(byteArray) 和str

我有一个字符串的字节数组

如何将
字节[]
转换为
字符串
字符串
转换为字节[]

压缩后,我得到字节数组形式的压缩值。
byte[]
系统输出处的值为

h?ö\
É·ë’YO¸p˜à¼Œ[䔽"$žQºÍCïηfØzöÛBi¤!< 
hö\
ëëYO¸p뼌[듽”$žQëCë206;·fØzö219; Bi!<
如何将此字节数组值转换为
String
并保持其值不变,然后将其返回字节数组进行解压缩? 尝试了内置函数,但它们更改了整个压缩字节数组

尝试
新字符串(byteArray)

string.getBytes()

在将原始数据解码为字符串时,需要为
字节[]
数组指定字符集


字符串类型包含这样的构造函数
String(bytes,Charset Charset)

在将字节转换为字符串并返回时使用ISO-8859-1

    String s = new String(bytes, "ISO-8859-1");
    bytes = s.getBytes("ISO-8859-1");
byte[]b=新字节[10];
b[0]=100;
b[1]=101;
b[2]=102;
b[5]=0;
b[6]=0;
字符串st=新字符串(b);
System.out.println(st);//def
b=st.getBytes();

对于(int i=0;i您需要考虑字符编码。任何人都可以向我提供字符集列表,以便我可以尝试。我希望我能做到这一点。我可以尝试使用可用的字符集类型,如utf-8。检测字符编码是/hard/。这是对象数组id的字符串版本,而不是它包含的字节数。得到了这一个是所有答案中最好的。你不应该需要它。你到底想做什么(输入来自哪里?)它来自一种文本压缩算法,它压缩文本,用它来减少传输数据的大小。你可以更好地尝试这样做,如果它返回相同的结果,那简直就是奇迹
byte[] b=new byte[10];
b[0]=100;
b[1]=101;
b[2]=102;
b[5]=0;
b[6]=0;

String st=new String(b);
System.out.println(st);//def
b=st.getBytes();
for(int i=0;i<b.length;i++){
    System.out.println(b[i]);
}