Làm cách nào để giải mã tham số URL được mã hóa bằng C#?Làm cách nào để giải mã tham số URL bằng C#?
Ví dụ, lấy URL này:
my.aspx?val=%2Fxyz2F
Làm cách nào để giải mã tham số URL được mã hóa bằng C#?Làm cách nào để giải mã tham số URL bằng C#?
Ví dụ, lấy URL này:
my.aspx?val=%2Fxyz2F
Server.UrlDecode(xxxxxxxx)
Các bạn đã thử HttpServerUtility.UrlDecode
hoặc HttpUtility.UrlDecode
?
Để truy cập vào 'HttpServerUtility.UrlDecode', đây là phương thức thể hiện nên sử dụng' HttpContext.Current.Server.UrlDecode'. – BornToCode
Hãy thử điều này:
string decodedUrl = HttpUtility.UrlDecode("my.aspx?val=%2Fxyz2F");
string decodedUrl = Uri.UnescapeDataString(url)
hoặc
string decodedUrl = HttpUtility.UrlDecode(url)
Url không được giải mã hoàn toàn với một cuộc gọi. Để giải mã đầy đủ bạn có thể gọi một trong những phương pháp này trong một vòng lặp:
private static string DecodeUrlString(string url) {
string newUrl;
while ((newUrl = Uri.UnescapeDataString(url)) != url)
url = newUrl;
return newUrl;
}
Uri.UnescapeDataString (url) thanx – themis
@ogi Cảm ơn vì điều đó! Tôi không biết nó không hoàn toàn làm việc chỉ với một cuộc gọi! Tôi chạy 'Uri.UnescapeDataString' hai lần và nhận được những gì tôi muốn !! : D – C0NFUS3D
Điều này chắc chắn phải là một câu trả lời được chấp nhận. – Sevenate
Hãy thử string s = System.Uri.UnescapeDataString(here);
Là một công trình xung quanh giải pháp tôi có thể gợi ý để tạo ra một phương pháp khuyến nông có thể giải mã URL của bạn trong bằng cách nào đó như thế này:
public static class DecodeString
{
public static string ToDecodeString(this string x)
{
if (x.Contains("%2B"))
{
x = x.Replace("%2B", "+");
}
if (x.Contains("%2F"))
{
x = x.Replace("%2F", "/");
}
if (x.Contains("%3D"))
{
x = x.Replace("%3D", "=");
}
return x;
}
}
Hy vọng điều đó có thể hữu ích!
không gian tên nào? – PolinaC