Я получаю некоторые неожиданные результаты от того, что я считал простым тестом. После запуска следующее:
byte [] bytes = {(byte)0x40, (byte)0xE2, (byte)0x56, (byte)0xFF, (byte)0xAD, (byte)0xDC};
String s = new String(bytes, Charset.forName("UTF-8"));
byte[] bytes2 = s.getBytes(Charset.forName("UTF-8"));
bytes2 - это массив из 14 элементов, не похожий на оригинальный (в байтах). Есть ли способ сделать такое преобразование и сохранить исходное разложение в байты?