Geçen gün bir projede url yi adres çubuğundan gönderip diğer taraftan da alıp yönlendirmem gerekiyordu. Normalde Server.HtmlEncode ve HtmlDecode ile gelen adresi sorunsuz bir şekilde gönderip almam gerekiyordu fakat & (ampersand) karakterinde problem oluştuğunu gördüm, sonradan diğer karakterlerde de sıkıntı olabilir diye aşağıdaki fonksiyonu yazdım. Kullanımı şu şekilde;
Adresi Encode etmek için: UrlDencode(“buraya url gelecek”,true)
Adresi Decode etmek için: UrlDencode(“buraya url gelecek”,false)
public static string UrlDencode(string adres, bool encode) { string[] karakter = { "<", ">", "#", "%", "{", "}", "|", @"\", "^", "~", "[", "]", "`", ";", "/", "?", ":", "@", "=", "&", "$" }; string[] donustur = { "%3C", "%3E", "%23", "%25", "%7B", "%7D", "%7C", "%5C", "%5E", "%7E", "%5B", "%5D", "%60", "%3B", "%2F", "%3F", "%3A", "%40", "%3D", "%26", "%24" }; if (encode) { for (int i = 0; i < karakter.Length; i++) { adres = adres.Replace(karakter[i], donustur[i]); } } else { for (int i = 0; i < donustur.Length; i++) { adres = adres.Replace(donustur[i], karakter[i]); } } return adres; }