HEX в строковом представлении (кириллица) - C#

Узнай цену своей работы

Формулировка задачи:

не всё так просто украденные из интернета алгоритмы не работают онлайн конвертеры тоже... это перехваченная СМС
240422043504410442043e0432043e043500200441043e043e043104490435043d04380435
на телефон пришла в нормальном виде -

"Тестовое сообщение"

ко мне -

$"5AB>2>5 A>>1I5=85

в программе на Qt делают так (говорят работает):
sms.data=QString::fromUtf8(QByteArray::fromHex(hex.toByteArray()));
у меня:
asciidata = data.ToString();
var raw = new byte[asciidata.Length / 2];
for (int i = 0, j = 0; i < asciidata.Length; i+=2, j++)
      raw[j] = Convert.ToByte(asciidata.Substring(i, 2), 16);
asciidata = Encoding.GetEncoding(1251).GetString(raw);
выводит кракозябры при любой кодировке при UTF8 цифры нормально конвертируются, русский текст нет (совпадает только количество букв)

!

нужно получить русские слова любым способом - может есть ещё способы для обработки hex, или можно Qt к проекту подцепить и вызвать QByteArray::fromHex()

!

при юникоде декодирует так -

ФТестово5Рсообщени�

Решение задачи: «HEX в строковом представлении (кириллица)»

textual
Листинг программы
Encoding.GetEncoding("utf-16be").GetString(raw, 1, raw[0]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы