bool IsUrlChar(char ch)
{
switch (ch)
{
case '+':
case '&':
case '@':
case '#':
case '/':
case '%':
case '?':
case '=':
case '~':
case '_':
case '|':
case '[':
case ']':
case '(':
case ')':
case '!':
case ':':
case ',':
case '.':
case ';':
return true;
default:
return Char.IsLetterOrDigit(ch);
}
}