Rename File Name with Special Characters

I am trying to rename files with spaces and other characters and not able to be successful.

FileNames:
UPLOAD REFERENCE.xls
UPLOAD MASS REFERENCE.XLS

 find /UPLOAD REFERENCE/ -depth -type f -name "* *" -exec rename " " "_" "{}" ";"

The above one is successful to replace spaces but only one space.

I tried to replace all characters to be safe but not able to do it

This discusses the problems with Linux distributions and rename + regex. It is a mess.
Renaming files in linux with a regex - Server Fault

You can try the perl workaround in the answer.

No one answer works well on every Linux distribution. Sadly.
You really need to validate what exact command you have to use:

perl, rename-perl, rename 

-- based on your system distribution. It may be better now, but I ran afoul of this about 3 years ago.

Heed the warnings in link about doing your homework first.