【发布时间】:2013-07-08 15:14:39
【问题描述】:
如何在不转换的情况下将bytes 的数组转换为String?。
我试过了:
String doc=new String( bytes);
但是doc文件和字节不一样(字节是二进制信息)。例如:
String doc=new String( bytes);
byte[] bytes2=doc.getBytes();
bytes 和 bytes2 不同。
PS:UTF-8 不起作用,因为它将某些字节转换为不同的值。我测试了,还是不行。
PS2:不,我不想要BASE64。
【问题讨论】:
-
你必须使用正确的编码
-
@TheNewIdiot 该帖子中的答案没有解决任何问题。我希望进行字节到字节的转换,答案是“转换它或破坏”。 Java怎么可能做不到呢?
-
Java 对二进制数据(字节)和文本(字符串)做了很好的区分。对于文本,他们在内部选择了 Unicode,因此涵盖了所有语言。尽管您可以使用 ISO-8559-1 之类的编码将字节原样转换为字符串,反之亦然,但这些字符串可能具有二进制 0 之类的伪影。
-
您几乎肯定确实想要 Base64,这是获得可逆字节到字符串编码的唯一方法。