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)