Java - 从字符串中恢复字节

时间:2016-05-09 15:30:44

标签: java byte

在java中,

// already set
byte[] bytes = ...;

字节数组可以转换为字符串,如

String s = bytes.toString();

问题是:如何恢复相同的"字节"来自" s"?

事实是,以下代码是错误的。

byte[] byteFromString = x.getBytes();

1 个答案:

答案 0 :(得分:0)

如果您刚刚使用bytes.toString(),那么它根本不可能。这会得到一个表示byte[]哈希码的字符串,它基本上是随机的,与byte[]的实际内容没有任何关系。

如果byte[]实际上代表了字符串的编码,例如UTF-8,那么您可以new String(bytes, StandardCharsets.UTF_8)将其转换为Stringstring.getBytes(StandardCharsets.UTF_8)为把它转回来。