Если вам нужно кодировать данные URL для строки запроса, вы можете использовать либо Uri.EscapeDataString , либо, если не возражаете, ссылки на System.Web, HttpUtility.UrlEncode :
var rawString = @"this & that";
var uriEncoded = Uri.EscapeDataString(rawString);
var httpUtilityEncoded = HttpUtility.UrlEncode(rawString);
Они очень похожи, но могут давать слегка отличающиеся результаты при кодировании специальных символов, например пробелов:
Console.WriteLine(uriEncoded);
// uriEncoded = "this%20%26%20that"
Console.WriteLine(httpUtilityEncoded);
// httpUtilityEncoded = "this+%26+that"