首页 > 解决方案 > 无法将 byteArray 转换为 String 并反转

问题描述

注意:这个问题中的问题是我上一个问题的原因。我正在生成长度为 16 的字节的 UUID。然后将其添加到 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();
}

我尝试了许多转换字符集类型,但没有一个有效。

标签: javaarraysstringuuid

解决方案


推荐阅读