I thought I was onto something, but on further examination it doesn't work. I tried the function that NogDog suggested, but it didn't work. Or at least it didn't do what I was expecting. And I've been Googling for a while trying to find a solution before I posted here again.
Without boring anyone with too many details, I am moving data from one schema to another, and without re-writing gobs of my code, the easiest solution (it seems, other than this pesky special character issue) is to run it and then pull the queries out of the general_log table.
I tried converting that argument field to ascii_general_ci rather than utf8_general_ci, but that didn't work. In fact, it stopped logging altogether when I did that. So I think I'm back to trying to fix my output. Here's a few examples of what I'm trying to solve for:
| ASCII | UTF-8 |
| \xAE | ® |
| \xE9 | é |
| \xF1 | ñ |
| \xBD | ½ |
I'm hoping to write a function that will convert the ASCII on the left to the corresponding character on the right. Sorry - I'm probably using some incorrect terminology here.