Java-код --
String plainText = "thisismyplaintext";
byte[] bytes = plainText.getBytes("UTF-8");
System.out.println(bytes);
// Output - [B@3cd1a2f1
Я пытаюсь сделать то же самое в javascript, но всегда получаю совершенно разные результаты, например, пример — [11, 12, 14, 16].
Я пробовал все из разных ответов stackoverfow, но ничего не работает, как этот код Java.
Пожалуйста, помогите мне добиться того же в javascript и получить аналогичный результат.
@JayJamesJay Я думаю, что OP знает об этом. ОП хочет перевести код Java в код Javascript
@ Ник Парсонс Ты прав, моя ошибка.
Вывод массивов байтов java является ссылкой на объект. Прочтите об объекте.toString(). Вы не сможете получить это в JavaScript.
Есть ли способ добиться того же в Node.js. Извините, я не упомянул, что на самом деле использую Node.js. Я знаю, что Node.js также является javascript, но доступно множество библиотек.
Тем не менее, это явно проблема с javascript. Тег java неуместен. Подсказка: подумайте о том, какова цель тегов: облегчить людям разное поиск вопросов и ответов, которые имеют отношение к ним. Люди, пытающиеся решить подобную проблему, будут искать вопросы и ответы по javascript, а не вопросы и ответы по java.
@Стивен. Хорошо, я только что упомянул Java, потому что код Java включен.
Да, но это не о Java.
Другая проблема заключается в том, что вы не объяснили, какой результат вы на самом деле хотите получить. (Тем более, что этот вывод Java, вероятно, является поддельным ... для большинства целей.) Чего вы, фактически, пытаетесь достичь?
@Stephen Пожалуйста, проверьте это - stackoverflow.com/questions/57123473/…



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


[B@3cd1a2f1 это не тот результат, который вам нужен. [B@3cd1a2f1 представляет тип класса ([B) вашего массива байтов и шестнадцатеричное представление хэша вашего массива. Вместо этого вам нужно распечатать содержимое массива, что можно сделать с помощью Arrays.toString():
String plainText = "thisismyplaintext";
byte[] bytes = plainText.getBytes(StandardCharsets.UTF_8);
System.out.println(Arrays.toString(bytes));
Это даст массив:
[116, 104, 105, 115, 105, 115, 109, 121, 112, 108, 97, 105, 110, 116, 101, 120, 116]
Это вы можете получить тот же результат в Javascript, используя следующее:
const str = "thisismyplaintext";
const utf8 = unescape(encodeURIComponent(str));
const arr = [...utf8].map(c => c.charCodeAt(0));
console.info(arr);- Credit to this answer for byte array algorithm
Спасибо за Ваш ответ. Я не знал, что происходит в этом Java-коде.
Пожалуйста, имейте в виду, что Java и JavaScript — это не один и тот же язык программирования, и исправьте теги.