Технически занимаюсь:
value = value.Replace("&", "%26")
сделает свое дело.
РЕДАКТИРОВАТЬ: Кажется, есть некоторые хитрые проблемы с целыми методами UrlEncode / HttpEncode, которые не совсем подходят. Некоторое время назад я написал простой метод, который может пригодиться. Это должно охватывать все основные проблемы кодирования, а также легко написать «десанитизатор».
Protected Function SanitizeURLString(ByVal RawURLParameter As String) As String
Dim Results As String
Results = RawURLParameter
Results = Results.Replace("%", "%25")
Results = Results.Replace("<", "%3C")
Results = Results.Replace(">", "%3E")
Results = Results.Replace("#", "%23")
Results = Results.Replace("{", "%7B")
Results = Results.Replace("}", "%7D")
Results = Results.Replace("|", "%7C")
Results = Results.Replace("\", "%5C")
Results = Results.Replace("^", "%5E")
Results = Results.Replace("~", "%7E")
Results = Results.Replace("[", "%5B")
Results = Results.Replace("]", "%5D")
Results = Results.Replace("`", "%60")
Results = Results.Replace(";", "%3B")
Results = Results.Replace("/", "%2F")
Results = Results.Replace("?", "%3F")
Results = Results.Replace(":", "%3A")
Results = Results.Replace("@", "%40")
Results = Results.Replace("=", "%3D")
Results = Results.Replace("&", "%26")
Results = Results.Replace("$", "%24")
Return Results
End Function