rename

One of the most annoying things about copying files from Windows systems on your local linux box are the strange filenames, Windows users consider to be state-of-the-art. Most of these names seem to consist solely of uppercase and special characters and of course lots of whitespaces... However, as we're running linux, the solution is just one simple command away: prename (rename on some systems), which is included in the standard Perl distribution, makes it possible:

#just pretend....
rename -n 's#\s+#_#g ;y#A-Z#a-z#;s#[^a-z0-9_\-.]#_#g;s#_+#_#g' *

#"sanitize" all filenames in the current directory if the output
#from above is ok
rename 's#\s+#_#g ;y#A-Z#a-z#;s#[^a-z0-9_\-.]#_#g;s#_+#_#g' *

BTW: This won't work out-of-the-box with find's exec-option!