0
在java中恢复字节,爪哇 - 从字符串
// already set
byte[] bytes = ...;
字节数组可以转换为字符串如
String s = bytes.toString();
问题是:我怎么能恢复相同的“字节”从“ s“吗?
事实是,下面的代码是错误的。
byte[] byteFromString = x.getBytes();
在java中恢复字节,爪哇 - 从字符串
// already set
byte[] bytes = ...;
字节数组可以转换为字符串如
String s = bytes.toString();
问题是:我怎么能恢复相同的“字节”从“ s“吗?
事实是,下面的代码是错误的。
byte[] byteFromString = x.getBytes();
如果你只是使用bytes.toString()
,那么不,这是不可能的。这会得到一个表示byte[]
的散列码的字符串,它基本上是随机的,并且与byte[]
的实际内容没有任何关系。
如果byte[]
其实是代表一个字符串的编码,如UTF-8,那么你可以做new String(bytes, StandardCharsets.UTF_8)
将其转换为一个String
,并string.getBytes(StandardCharsets.UTF_8)
将其转换回。
Get!非常感谢。 –
您的问题的答案可能取决于字符串所具有的_encoding_。例如,在UTF-8中,一个字符可能由4个字节组成,但也可能只包含一个字节。 –
http://stackoverflow.com/questions/19834854/how-to-cast-string-to-byte-array – ryekayo
严格地说'String s = bytes.toString();'不是一个强制操作 – Lee