2013-12-11 51 views
0

我有一个字符串的字节数组。字节[]到字符串和字符串到字节[]保持信息不变

如何byte[]转换为StringString为byte []

压缩我得到字节数组的形式压缩值之后。在System.out byte[]

h?ö\ 
É·ë’YO¸p˜à¼Œ[䔽"$žQºÍCïηfØzöÛBi¤!< 

我如何转换这个字节数组值String保持其价值不变,然后得到它回到字节数组解压? 试图buitin功能,但他们改变了整个压缩字节数组

+0

你需要采取字符编码考虑。 – tom

+0

任何人都可以提供我的字符集的列表,所以我可以尝试 –

+0

我得到了这个希望我会设法做到这一点 http://www.unicodetools.com/unicode/codepage-latin.php –

回答

-1

使用ISO-8859-1转换字节时,字符串和背部

String s = new String(bytes, "ISO-8859-1"); 
    bytes = s.getBytes("ISO-8859-1"); 
+0

它给了我[B @ 540408 –

+1

这是一个对象数组的id的字符串版本,而不是它包含的字节。 – tom

+0

得到这一个是所有的最好的答案 –

1

尝试new String(byteArray)string.getBytes()

0

您需要指定为您byte[]阵列的字符集,而从原材料解码成字符串。

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

+0

什么类型的字符集它可以我尝试了可用像utf-8 –

+0

检测字符编码是/ hard /。 – tom

0
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]); 
}