Вам нужно кодировать параметры запроса перед объединением их, чтобы сформировать URL. Функция нужна здесь encodeURIComponent .Для например,
URL, вам нужно создать это:
http://localhost/mysite/mypage?param=a=?&b=/
Теперь, если предположить, что? и/приходит как переменные, вам нужно закодировать их, прежде чем вводить URL-адрес. Так позволяет создать URL с помощью этой функции (я ожидающей два параметра запроса):
var q1 = "a=?"; //came from some input or something
var q2 = "/"; //came from somewhere else
var faultyUrl = "http://localhost/mysite/mypage?param="+ q1 +"&b=" + q2;
// "http://localhost/mysite/mypage?param=a=?&b=/"
var properUrl = "http://localhost/mysite/mypage?param="+ encodeURIComponent(q1) +"&b=" + encodeURIComponent(q2);
//"http://localhost/mysite/mypage?param=a%3D%3F&b=%2F"
Эта функция в основном JS и поддерживается во всех браузерах.
в .Net вы хотите использовать 'HttpUtility.UrlEncode' https://msdn.microsoft.com/en-us/library/system.web.httputility.urlencode(v=vs.110).aspx – GJKH