public static string UrlEncode()

in dotnet/Awsiotdevicepubhttp/Awsiotdevicepubhttp/utils/HttpHelpers.cs [151:168]


        public static string UrlEncode(string data, bool isPath = false)
        {
            // The Set of accepted and valid Url characters per RFC3986. Characters outside of this set will be encoded.
            const string validUrlCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~";

            var encoded = new StringBuilder(data.Length * 2);
            string unreservedChars = string.Concat(validUrlCharacters, (isPath ? "/:" : ""));

            foreach (char symbol in Encoding.UTF8.GetBytes(data))
            {
                if (unreservedChars.IndexOf(symbol) != -1)
                    encoded.Append(symbol);
                else
                    encoded.Append("%").Append(string.Format("{0:X2}", (int)symbol));
            }

            return encoded.ToString();
        }