There is a table that summarizes the behavior of Server.UrlEncode and Server.UrlPathEncode here:
http://engineering.meta-comm.com/blogs/misha/content/binary/results.html
One approach to establishing a kind of “coverage” with Server.UrlEncode is discussed Ray Jezek in “HttpUtility.UrlEncode Does not encode spaces properly” here:
http://blogs.geekdojo.net/jez/archive/2005/01/14/6462.aspx