Personalmente no creo que guardar el mismo nombre que te envian sea el adecuado, si google te muestra el nombre con que tu lo subiste no quiere decir que efectivamente ellos lo guarden asi, se debe hacer un proceso interno que limpie esto para evitar estos problemas, lo que debe ser transparente para el usuario.
Sobre tu duda, que caracteres especificamente mencionas? porque por ejemplo, si yo envio esto
El me convierte a esto
Ahora, si yo le envio un "$" esto corta la cadena, ya que es un caracter de PHP por ejemplo
Deja
Código HTML:
Ver originalorg : holíta_`.csv
mod : hol?ta_`.csv
Ahora, guardar nombres con "?" en windows no te dejaria, y linux es mas detallista en este aspecto ya que discrimina entre mayusculas y minusculas, en que entorno pruebas?
Mientras mas detalles me des mas facil es para mi hacer pruebas.
Otra cosa, actualmente existen framework como symfony2, que poseen bundles los cuales facilitan enormente esto.