HttpUtility.UrlEncode("!!!test", Encoding.GetEncoding("windows-1251"))
He does not code ! in %21 - why?
!
%21
Because it is a valid character at the URL and does not need to be encoded.