There's one standard answer to path names containing spaces: use quotes.
As for 'foreign' characters -- well, firstly, 'A' is a foreign character, since it is used in the Icelandic alphabet. Which is to say, languages may be foreign, but characters are not. Secondly, what is 'show up'? To see them on-screen, you need to be using a font that contains glyphs for those characters: Lucida Console's not bad. But just because you can't see them doesn't mean they're not in the data stream.
But for file output from 'dir' you probably do need to start the command prompt with /U (see cmd /? for rationale). I haven't tested this out, but it looks necessary. But maybe not: maybe without /U you get something like utf8 which can then be handled correctly. (Unfortuately, in a country where people still think text means ASCII and character means byte, 23 years after that ceased to be true, you have to deal with things like this).
My last piece of unsolicited advice is to do programming in a programming language. It's an amusing intellectual exercise to try and do things in the filthy bastard mess that is the repertoire of cmd.exe (e.g., the 'for' command), but really there are better ways to get results. I like Perl. Object-disoriented people may prefer powershell.