Как мне извлечь byte[]
из String
с правильным форматом / кодировкой?
Это то, что у меня есть:
byte[] bytes = // some byte[] derived from custom code
String bytesString = // some string derived from the bytes above with custom code
byte[] newBytes = // TODO: transform bytesString back into bytes above
System.out.println(Arrays.toString(bytes));
// [74, -61, 58, 97, 127, -8, -5, -123, 70, 51, 65, 109, -20, -43, 117, 83]
System.out.println(bytesString);
// JÃ:aøû…F3AmìÕuS
System.out.println(Arrays.toString(bytesString.getBytes())); // similar but not identical
// [74, -61, -125, 58, 97, 127, -61, -72, -61, -69, -62, -123, 70, 51, 65, 109, -61, -84, -61, -107, 117, 83]
Я пытаюсь преобразовать bytesString
вверху обратно в точное byte[]
. Это самое близкое, что у меня есть:
byte[] newBytes = bytesString.getBytes("UTF-16LE");
System.out.println(newBytes); // identical if we remove the 0s
// [74, 0, -61, 0, 58, 0, 97, 0, 127, 0, -8, 0, -5, 0, -123, 0, 70, 0, 51, 0, 65, 0, 109, 0, -20, 0, -43, 0, 117, 0, 83, 0]
Конечно, я не хочу просто удалять нули из массива выше. Что мне не хватает?