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.
Please use this branch before filling bug reports or issues. Often times problems have been corrected in the development branches that have not yet been rolled into an official release.