escapes all 'special' characters and not only the ones that are invalid. nautilus shows these invalid unicode filenames with a "?" instead of the character and a (invalid unicode) comment at the end of the filename.
I have used the program convmv to do this. You can grab a tarball at http://j3e.de/linux/convmv/ and read the manual without downloading the tarball at http://j3e.de/linux/convmv/man/ . It's a Perlscript, so you will need perl installed -- but I think just about any Fedora installation will have that.