Я пытаюсь понять способ кодирования, вот мой код для кодирования и декодирования строки.
Charset utfset = Charset.forName("UTF-8");
CharsetEncoder encoder = utfset.newEncoder();
String text = "java.abcded.tocken";
CharBuffer cb = CharBuffer.wrap(text.toCharArray());
ByteBuffer bb = encoder.encode(cb);
byte[] bytes = bb.array();
CharsetDecoder isodecoder = utfset.newDecoder();
CharBuffer isodcb = isodecoder.decode(bb);
System.out.println(String.valueOf(cb.array()).equals(String.valueOf(isodcb.array())));
CharBuffer isodcb2 = isodecoder.decode(ByteBuffer.wrap(bytes));
System.out.println(String.valueOf(cb.array()).equals(String.valueOf(isodcb2.array())));
Когда декодирование выполняется с помощью самого byteBuffer, строки равны, но когда декодирование выполняется с помощью bytebuffer.wrap массива байтов из bytebuffer, строки не равны. Это добавление пробелов в конец, есть ли причина для этого?