I use rename[1] to clean up problematic filenames. Sadly I have to rename it to `rnm` because there is a namespace conflict with rename.pl in util-linux. On OSX it is as easy as `brew install rename.` I do not know why it has never made it into the debian.
Taking care of a directory full of madness is as easy as `rename -z`:
-z, --sanitize
Replaces consecutive blanks, shell meta characters, and control characters
in filenames with underscores.
[1] http://plasmasturm.org/code/rename