private static string Encode(string input)
{
StringBuilder resultStr = new StringBuilder(input.Length);
foreach (char ch in input)
{
if (!IsSafe(ch))
{
resultStr.Append('%');
resultStr.Append(String.Format("{0:X2}", (short)ch));
}
else
{
resultStr.Append(ch);
}
}
return resultStr.ToString();
}