Как преобразовать эту последовательность в этот хэш? - PullRequest
1 голос
/ 05 февраля 2009

Я использую веб-сервис из моего приложения в C # .net (2.0), который возвращает значения (в виде строки) следующим образом:

%23k.%0d%16%c4%8a%18%efG%28%b9c%12%b7%f1%e2%e7j%93

Я знаю, что реальное значение для этого:

236B2E0D16C48A18EF4728B96312B7F1E2E76A93

Но я не знаю, как преобразовать возвращаемое значение в реальное.

Есть мысли?

В любом случае, спасибо за ваше время. Приветствия.

Ответы [ 3 ]

3 голосов
/ 05 февраля 2009

Вниз по линии:

Если вы встретите '%', скопируйте следующие два символа

В противном случае взять код ascii найденного символа и вывести его в шестнадцатеричном виде

%23  => 23
k    => 6B
.    => 2E
%0d  => 0D

ASCII Таблица

Но в коде я уверен, что это сработает:

char c = 'k';
int ascii = (int)c;
string hex = ascii.ToString("X2");
1 голос
/ 05 февраля 2009

Спасибо за информацию, Роб. Если кому-то нужен полный метод, вот он:

static private string convertInfoHash(string encodedHash)
{
    string convertedHash = string.Empty;
    for (int i = 0; i < encodedHash.Length; i++)
    {
        if (encodedHash[i] == '%')
        {
            convertedHash += String.Format("{0}{1}",encodedHash[i + 1],encodedHash[i + 2]);
            i += 2;
        }
        else
        {
            int ascii = (int)encodedHash[i];
            convertedHash += ascii.ToString("X2");

        }
    }

    return convertedHash;
}
0 голосов
/ 05 февраля 2009

Я не уверен в этом, но попробуйте использовать метод System.Web.HttpUtility.UrlDecode

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...