public static string URLEncode(this string title) { var w = new StringBuilder(); const string Unreserved = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~"; const string Reserved = "!*'();:@&=+$,/?%#[] "; var ReservedValues = new[] { "%21", "%2A", "%27", "%28", "%29", "%3B", "%3A", "%40", "%26", "%3D", "%2B", "%24", "%2C", "%2F", "%3F", "%25", "%23", "%5B", "%5D", "%20" }; for (int i = 0; i < title.Length; i++) { var c = title.Substring(i, 1); if (Unreserved.Contains(c)) { w.Append(c); } else { var j = Reserved.IndexOf(c); if (j >= 0) { w.Append(ReservedValues[j]); } } } var e = w.ToString(); return(e); }
private static string UrlEncode(string value) { const string Unreserved = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~"; var result = new StringBuilder(); foreach (char symbol in value) { if (Unreserved.IndexOf(symbol) != -1) { result.Append(symbol); } else { result.Append('%' + string.Format("{0:X2}", (int)symbol)); } } return(result.ToString()); }