In my frustrations, I have decided that the best solution for the url encoding problem is to allow the keywords to have a space in them at the expense of the keywords that have a "+" (such as C++). I really do believe that there is a bug either with Drupal, or with the browsers that are not decoding the keyword %2B correctly (%2B should decode as "+", but is actually passing "C " instead of "C++" to my filter. Hopefully somebody will be able to solve this problem. I have been banging my head over this for too long now to keep worrying about it.