2009-02-04 2 views
1

Я потребляя WebService из моего приложения в C# .NET (2.0), которые возвращают значения (как строка), как это:Как преобразовать эту последовательность в этот хэш?

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

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

236B2E0D16C48A18EF4728B96312B7F1E2E76A93 

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

Любые мысли?

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

ответ

3

Идущий вниз линию:

Если вы столкнулись с «%» скопировать следующие два символа

в противном случае возьмите ASCII код символа найден и выход в шестнадцатеричном

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

ASCII Table

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

char c = 'k'; 
int ascii = (int)c; 
string hex = ascii.ToString("X2"); 
0

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

+0

Пробовал, но нет ... Спасибо в любом случае –

1

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

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; 
} 
Смежные вопросы