注意:此问题中的问题是我previous问题的原因。
我将UUID生成为长度为16的字节。然后将其添加到JsonArray中。当我从JsonArray获取第一个和唯一的元素.getString(0)
并将其转换回字节时,结果字节的长度为24.
byte[] uuid = UUIDToolBox.fromUUIDToBytes(UUID.randomUUID());
System.out.println("uuid byteArray = " + Arrays.toString(uuid) + ", length:" + uuid.length );
JsonArray j = new JsonArray().add(uuid);
byte[] n = j.getString(0).getBytes(Charset.forName("UTF-8"));
System.out.println("from String = " + Arrays.toString(n) + ", length:" + n.length);
public static byte[] fromUUIDToBytes(UUID uuid) {
ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
bb.putLong(uuid.getMostSignificantBits());
bb.putLong(uuid.getLeastSignificantBits());
return bb.array();
}
我尝试了很多转换字符集类型,但都没有。