The problem with file name is the main reason I use zsh.
for fic in **/*(.); do
doSomethingWith $fic
done
will take way more time than using find, but will work even with files with stranges chars.