Giả sử tôi muốn tạo một đối tượng Uri từ chuỗi sau:Tạo một Uri trong .NET tự động urldecodes tất cả các thông số từ chuỗi thông qua
string url = @"http://someserver.com?param1=1&url=http%3a%2f%2fwww.otherserver.com";
Uri uri = new Uri(url, UriKind.Absolute);
Kết quả mong đợi sẽ là:
http://someserver.com?param1=1&url=http%3a%2f%2fwww.otherserver.com
Thu được:
http://someserver.com/?param1=1&url=http://www.otherserver.com
Hành vi tương tự cũng được nhận thấy trong nhiều phương pháp liên quan cho phép tạo Uri: Uri.TryCreate, UriBuilder.Uri, v.v.
Làm cách nào để nhận được Uri duy trì thông số được mã hóa ban đầu?
Kết quả mong đợi khi làm gì? Nếu tôi thử mã của bạn trong một ứng dụng Console 'Console.WriteLine (uri.AbsoluteUri);' trả về url được mã hóa –
Đối với các tìm kiếm khác liên quan đến điều này. Nó thực sự là phương thức ToString() giải mã chuỗi. .OriginalString hoặc .AbsoluteUri sẽ trả về chuỗi được mã hóa. Đối với url tương đối, hãy sử dụng .PathAndQuery – jishi