Хобрук: Ваш путь к мастерству в программировании

Преобразование строки в ByteArray в С#

Я хочу преобразовать строку в ByteArray в С# для расшифровки некоторых данных.

Когда я получаю de String из созданного ByteArray, он показывает вопросительные знаки (?).

Пример кода:

        byte[] strTemp = Encoding.ASCII.GetBytes(strData);

        MessageBox.Show(strData);
        MessageBox.Show(Encoding.ASCII.GetString(strTemp));

Строка "Ê‹,,l"x¡" (с двойными кавычками), и результат для повторного преобразования в строку: ???l?x?

07.07.2017

  • Вам нужно использовать правильную кодировку, возможно, исходная строка не была в ASCII, попробуйте вместо этого Unicode. 07.07.2017
  • Если вы пытаетесь сохранить произвольные двоичные данные в строке, для начала вам следует использовать base64 или hex. Мы понятия не имеем, откуда берутся ваши данные, но маловероятно, что они следуют этому правилу... 07.07.2017
  • Проще говоря: чтобы расшифровать, вам нужно выполнить шаги шифрования в обратном порядке. Пожалуйста, покажите их. 07.07.2017

Ответы:


1

Надеюсь, это поможет вам:

Чтобы получить массив байтов из строки

private byte[] StringToByteArray(string str)
{
     System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
     return enc.GetBytes(str);
}

Чтобы получить строку обратно из массива байтов:

private string ByteArrayToString(byte[] arr)
{
    System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
    return enc.GetString(arr);
}
07.07.2017

2

Для конкретного ввода эта кодировка BigEndianUnicode работает нормально.

byte[] strTemp = Encoding.BigEndianUnicode.GetBytes(strData);

MessageBox.Show(strData);
MessageBox.Show(Encoding.BigEndianUnicode.GetString(strTemp));

`

07.07.2017
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..