在java中,
// already set
byte[] bytes = ...;
字节数组可以转换为字符串,如
String s = bytes.toString();
问题是:如何恢复相同的"字节"来自" s"?
事实是,以下代码是错误的。
byte[] byteFromString = x.getBytes();
答案 0 :(得分:0)
如果您刚刚使用bytes.toString()
,那么它根本不可能。这会得到一个表示byte[]
哈希码的字符串,它基本上是随机的,与byte[]
的实际内容没有任何关系。
如果byte[]
实际上代表了字符串的编码,例如UTF-8,那么您可以new String(bytes, StandardCharsets.UTF_8)
将其转换为String
,string.getBytes(StandardCharsets.UTF_8)
为把它转回来。