示例#1
0
        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());
    }