using Server.URLEncode caused quite a few problems.
I changed this:
SearchLink = "&SearchTerms=" & chkString(strKeyWords,"search")
to this:
if strAndOr = "phrase" then strKeyWords = replace(strKeyWords,",","+")
SearchLink = "&SearchTerms=" & chkString(strKeyWords,"search")
seems to work fine, and doesn't cause problems with other characters.