When using MySQL full text search in boolean mode there are certain characters like + and - that are used as operators. If I do a search for something like \"C++\" it interp
There's no way to do this in nicely using MySQL's full text search. What you're doing (substituting special characters with a pre-defined string) is the only way to do it.
You may wish to consider using Sphinx Search instead. It apparently supports escaping special characters, and by all reports is significantly faster than the default full text search.