mag*_*nes 18 java arrays string
如何将数组转换bytes为String无转换?
我试过了:
String doc=new String( bytes);
Run Code Online (Sandbox Code Playgroud)
但是doc文件与字节不同(字节是二进制信息).例如:
String doc=new String( bytes);
byte[] bytes2=doc.getBytes();
Run Code Online (Sandbox Code Playgroud)
bytes并且bytes2是不同的.
PS:UTF-8不起作用,因为它转换了不同值的一些字节.我测试过它不起作用.
PS2:不,我不想要BASE64.
Pet*_*rey 16
您需要指定所需的编码,例如UTF-8
String doc = ....
byte[] bytes = doc.getBytes("UTF-8");
String doc2 = new String(bytes, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
doc并且doc2将是相同的.
要解码,byte[]您需要知道使用了什么编码,以确保它将正确解码.
Jon*_*oni 13
这是将字节数组转换为a String和back 的一种方法:
String doc=new String(bytes, "ISO-8859-1");
byte[] bytes2=doc.getBytes("ISO-8859-1");
Run Code Online (Sandbox Code Playgroud)
A String是一系列字符,因此您必须以某种方式将字节编码为字符.该ISO-8859-1编码映射每个字节一个单一的,独特的个性,所以它的安全使用它的转换.请注意,其他编码(例如)UTF-8在这种意义上并不安全,因为有些字节序列不会映射到这些编码中的有效字符串.