Строка, которая содержит Байтовый Массив в неправильной форме в Строку - PullRequest
1 голос
/ 07 февраля 2011

У меня вопрос по поводу следующей проблемы:

// input-String (including four bytes) : d131dd02...
// transform Bytes-String in String (this Works!) manually:
String message = ((char)0xd1).ToString() + ((char)0x31).ToString() + ((char)0xdd).ToString() + ((char)0x02).ToString()+ ....

Я хочу написать функцию, которая автоматически преобразует указанную выше строку ввода в правильный формат.Я начал писать некоторый код, но он не работает, потому что я понятия не имею, как мне это сделать.

if(checkBox1.Checked== true)
{
   String message = null;
   char[] bufferArray = textBox1.Text.ToArray();
   MessageBox.Show(bufferArray.Length.ToString());
   for (int i = 0; i < textBox1.TextLength / 2; i+=2)
   {
      String buffer=("0" + "x" + bufferArray[i] + bufferArray[i+1]);
      message += ((char)buffer.ToString();
   }
   richTextBox1.Text = getMd5Hash(message);
   richTextBox2.Text = MD5HashBerechnen(message).ToLower();
}

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 07 февраля 2011

Посмотрите на класс Кодировка .

Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(bufferArray));
0 голосов
/ 07 февраля 2011

Причина, по которой он не работает, заключается в том, что в первом случае вы приводите число к символу, а во втором - строку к символу.

0xd1 - это не то же самое, что "0xd1"

0 голосов
/ 07 февраля 2011

Я думаю, что вы должны просто избавиться от "/ 2".

...