Dateiname Zeichensatz Problem in Java

eim Versuch, eine Datei zu öffnen, wird angegeben, dass sie aufgrund einer Zeichensatz-Nichtübereinstimmung nicht gefunden werden kann, wenn Dateinamen mit Akzenten versehen sind. Ich arbeite mit UTF-8 auf einem Linux-System (/ etc / locales setzt auch UTF-8). Ausführen von jboss mit -Dfile.encoding = UTF-8 und Umgebungsvariable JBOSS_ENCODING = "UTF-8"

Mit einer JSP erhalte ich den Namen der Datei:

String fileName = element.getChildText("FileName");
out.println("File to be opened : " + filename);

Anzeigen:

Datei, die geöffnet werden soll: aaaaaà.txt

Aber eine neue Datei (fileName) funktioniert nicht. Nur file.exists () ist falsch.

Versuchen

File[] files = dir.listFiles();
for (int i=0; i<files.length; i++){
      out.println(fileName);

Ich bekomme: aaaaaà .txt

Warum wird gelesen und versucht, die Datei zu öffnen, indem die Datei auf der Festplatte als ISO-8859-1 gespeichert wird? Ist es eine JBoss-Konfiguration? Eine Java-Konfiguration? Wie kann ich java.io.File zwingen, die Datei mit UTF-8 als Zeichensatz des Dateinamens zu lesen?

Ich habe andere Tools verwendet und der Name wird mit UTF-8 immer korrekt gelesen.

(beachte, dass ich immer über den Namen der Datei spreche, niemals über den Inhalt, es könnte sich um eine ungültige Datei handeln)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage