scripts
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace System.Net
|
||||
{
|
||||
// Token: 0x02000236 RID: 566
|
||||
internal sealed class HttpUtility
|
||||
{
|
||||
// Token: 0x060013C7 RID: 5063 RVA: 0x0003D48C File Offset: 0x0003B68C
|
||||
private HttpUtility()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060013C8 RID: 5064 RVA: 0x0003D494 File Offset: 0x0003B694
|
||||
public static string UrlDecode(string s)
|
||||
{
|
||||
return HttpUtility.UrlDecode(s, null);
|
||||
}
|
||||
|
||||
// Token: 0x060013C9 RID: 5065 RVA: 0x0003D4A0 File Offset: 0x0003B6A0
|
||||
private static char[] GetChars(MemoryStream b, Encoding e)
|
||||
{
|
||||
return e.GetChars(b.GetBuffer(), 0, (int)b.Length);
|
||||
}
|
||||
|
||||
// Token: 0x060013CA RID: 5066 RVA: 0x0003D4C4 File Offset: 0x0003B6C4
|
||||
public static string UrlDecode(string s, Encoding e)
|
||||
{
|
||||
if (s == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
if (s.IndexOf('%') == -1 && s.IndexOf('+') == -1)
|
||||
{
|
||||
return s;
|
||||
}
|
||||
if (e == null)
|
||||
{
|
||||
e = Encoding.GetEncoding(28591);
|
||||
}
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
long num = (long)s.Length;
|
||||
NumberStyles numberStyles = NumberStyles.HexNumber;
|
||||
MemoryStream memoryStream = new MemoryStream();
|
||||
int num2 = 0;
|
||||
while ((long)num2 < num)
|
||||
{
|
||||
if (s[num2] == '%' && (long)(num2 + 2) < num)
|
||||
{
|
||||
if (s[num2 + 1] == 'u' && (long)(num2 + 5) < num)
|
||||
{
|
||||
if (memoryStream.Length > 0L)
|
||||
{
|
||||
stringBuilder.Append(HttpUtility.GetChars(memoryStream, e));
|
||||
memoryStream.SetLength(0L);
|
||||
}
|
||||
stringBuilder.Append((char)int.Parse(s.Substring(num2 + 2, 4), numberStyles));
|
||||
num2 += 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
memoryStream.WriteByte((byte)int.Parse(s.Substring(num2 + 1, 2), numberStyles));
|
||||
num2 += 2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (memoryStream.Length > 0L)
|
||||
{
|
||||
stringBuilder.Append(HttpUtility.GetChars(memoryStream, e));
|
||||
memoryStream.SetLength(0L);
|
||||
}
|
||||
if (s[num2] == '+')
|
||||
{
|
||||
stringBuilder.Append(' ');
|
||||
}
|
||||
else
|
||||
{
|
||||
stringBuilder.Append(s[num2]);
|
||||
}
|
||||
}
|
||||
num2++;
|
||||
}
|
||||
if (memoryStream.Length > 0L)
|
||||
{
|
||||
stringBuilder.Append(HttpUtility.GetChars(memoryStream, e));
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user