【发布时间】:2018-09-05 04:51:53
【问题描述】:
我有一个意外行为,我想知道这是否是预期行为,其背后的原因是什么?我使用字节数组创建了一个新字符串,当我使用相同的编码返回字节数组时,字节数组就不一样了。
byte[] bytes = new byte[24];
new Random().nextBytes(bytes);
assertEquals( // fails
DatatypeConverter.printHexBinary(bytes),
DatatypeConverter.printHexBinary(new String(bytes, UTF_8).getBytes(UTF_8))
);
【问题讨论】:
-
是的,字符串不同于字节。不要使用字符串来存储字节,这是一个糟糕的主意。
标签: java string encoding character-encoding byte