Creo que la mejor forma de solucionar esto es que usaras
str_replace para reemplazar esos caracteres, y darle la posibilidad al usuario , mediante un textbox, de cambiar el nombre del archivo, por lo que en la BD tienes la ruta -sin caracteres y espacios- del archivo y a la vez el nombre del arhcivo.
A mi me a funcionado muy bien reemplazar los caracteres.
Saludillos.