The solution is to ALWAYS include .Replace(" ", "+") when you request querystring
The solution is to always escape your characters (using Server.URLEncode()) before sending them on to another page. You can then use the Unescape() function in classic ASP, or you can use Server.URLDecode() in .NET. There's no reason to mess around with replacing a bunch of different characters. A space isn't the only thing that gets messed up in a QueryString.