in dotnetcore/utils/HttpHelpers.cs [148:165]
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 System.Text.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();
}