A somewhat dangerous solution is this, from the commandline:
find . -type f ! -regex '.*/[ -.0-~]*' -exec rm {} +
Replace the lone . with the name of the top directory if you haven't changed to the relevant directory first. To be safe, however try first the shorter command
find . -type f ! -regex '.*/[ -.0-~]*'
and ensure that it only lists files you wish to delete. The regular expression (regexp, or regex) here will match any pathname that ends in a slash followed by any combination of printable ASCII characters excluding /, the space characters being the first such and ~ the last, while . and 0 surround / in the ASCII sequence.
One caveat among many: I don't know for sure if your current locale might change the collating sequence of characters, and hence perhaps change the meaning of the regexp. I don't think it does, but if it does, running the commands as
LC_COLLATE=C find …
should remove the danger.
Yet another caveat: Please ensure you have a backup before you try this. I will not take the blame for any loss of data if you get it wrong. The commandline is a great tool for shooting yourself in the foot! Sometimes just a misplaced space can spell disaster. (In this case, for example, missing the single space after the left bracket is deadly.)
find -name ’*ü*' -print? – patrix♦ Feb 13 '12 at 23:12