public static bool IsUriClean(string s)
{
string sd = s.Normalize(NormalizationForm.FormD);
for (int i = 0; i < sd.Length; i++)
{
if (!CharIsAllowed(sd[i]))
return false;
}
if (sd[sd.Length - 1] == '.')
return false;
return true;
}