I'm in America, near San Francisco, on a Mac, running garden variety Java 8. When I run your code, as is, I get the umlaut:
UTF-8
standü.png
I kinda figured I'd get this, because I know from past experience that my default Charset is some kind of unicode that will preserve foreign characters. Why is your default Charset ASCII? That seems to be your problem.
As I said in my comment, I think you can change "Charset.defaultCharset()" to "Charset.forName("UTF-8") to fix your problem. I can't be sure, but if I set it to "Charset.forName("ASCII"), then I get the output you do. So it seems this should fix things for you.
So just change:
String newstr = new String(f.getName().getBytes(Charset.defaultCharset()),"UTF-8");
to:
String newstr = new String(f.getName().getBytes(Charset.forName("UTF-8"),"UTF-8");
Also, won't this give you your umlaut:
String newstr = f.getName();
System.out.println(newstr);
as everything stays unicode all the way along, if I understand correctly. The problem comes in when you have to convert the name to a byte stream. If you don't have to do that, you'll be fine. If you do, then use UTF-8 explicitly instead of the default charset and I think you'll be good too.