protected string Encode(string path)
{
path = path.Replace("!21", "!2121");
for (int i = 0; i < _specialChars.Length; i++)
{
char c = _specialChars[i];
string ce = ((int)c).ToString("x");
path = path.Replace('!' + ce, "!21" + ce).Replace(c.ToString(), '!' + ce);
}
return HttpUtility.UrlPathEncode(path);
}