使用嵌套编码解码字符串

问题描述 投票:0回答:2

strong text给出一个已编码n次的字符串,如果我不知道n的值,如何解码字符串给我简单的未编码字符串。

澄清:

Initial : /unencoded?string/

Encoded Once : %2Funencoded%3Fstring%2F

Encoded Twice: %252Funencoded%253Fstring%252F

Encoded Three Times: %25252Funencoded%25253Fstring%25252F

我如何从%25252Funencoded%25253Fstring%25252F/unencoded?string/而不知道它被编码了三次?

我知道我可以使用HttpServerUtility.UrlDecode或类似的,但这只能解码一次。

c# visual-studio-2010 encoding
2个回答
3
投票

解码它直到解码不再改变它。

string encodedString = "....";
string temp = string.Empty;
string decodedString = HttpServerUtility.UrlDecode(encodedString);
while (decodedString != temp)
{
    temp=decodedString;
    decodedString = HttpServerUtility.UrlDecode(temp);
}

0
投票

更新了以下hometoast的.NET版本。

基本上只是用HttpServerUtility.UrlDecode交换HttpUtility.UrlDecode

string encodedString = "....";
string temp = string.Empty;
string decodedString = HttpUtility.UrlDecode(encodedString);
while (decodedString != temp)
{
    temp=decodedString;
    decodedString = HttpUtility.UrlDecode(temp);
}
© www.soinside.com 2019 - 2024. All rights reserved.