我消費從我的應用程序在C#.net(2.0)一個Web服務有返回值(如字符串)是這樣的:如何將此序列轉換爲此散列?
%23k.%0d%16%c4%8a%18%efG%28%b9c%12%b7%f1%e2%e7j%93
我知道,對於真正的價值是:
236B2E0D16C48A18EF4728B96312B7F1E2E76A93
但我不知道如何從返回值轉換爲實際值。
有什麼想法?
無論如何,謝謝你的時間。 乾杯。
我消費從我的應用程序在C#.net(2.0)一個Web服務有返回值(如字符串)是這樣的:如何將此序列轉換爲此散列?
%23k.%0d%16%c4%8a%18%efG%28%b9c%12%b7%f1%e2%e7j%93
我知道,對於真正的價值是:
236B2E0D16C48A18EF4728B96312B7F1E2E76A93
但我不知道如何從返回值轉換爲實際值。
有什麼想法?
無論如何,謝謝你的時間。 乾杯。
下鄉行:
如果遇到「%」複製後面的兩個字符
否則取發現的字符的ASCII碼,並輸出作爲十六進制
%23 => 23
k => 6B
. => 2E
%0d => 0D
但在代碼中,我敢肯定,這將工作:
char c = 'k';
int ascii = (int)c;
string hex = ascii.ToString("X2");
我不能肯定這一點,但嘗試使用System.Web.HttpUtility.UrlDecode方法
感謝您的信息羅布。如果有人想在這裏完整的方法是這樣的:
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;
}
試過,但沒有...無論如何謝謝 – 2009-02-04 23:18:29