Тоже столкнулся с этой проблемой.
Заставить серверную сторону делать UrlDecode не могу. Браузер действительно может отправлять символы без перекодировки.
Я так понимаю HttpWebRequest делает где-нибудь Encoding.GetEncoding("ASCII").GetBytes() где бы это нарыть?