Проблема кодировки имени файла в java

При попытке открыть файл он сообщает, что он не может быть найден из-за несоответствия кодировки, когда имена файлов имеют диакритические знаки. Я работаю с UTF-8 в системе Linux (/ etc / locales также устанавливает UTF-8). Запуск jboss с -Dfile.encoding = UTF-8 и переменной окружения JBOSS_ENCODING = "UTF-8"

С помощью JSP я получаю имя файла:

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

Отображает:

Открываемый файл: aaaaaà .txt

Но новый файл (имя_файла) работать не будет. Просто file.exists () неверно.

Попытка:

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

Я получаю: aaaaaà .txt

Почему он читает и пытается открыть файл, содержащий файл на жестком диске как ISO-8859-1? Это конфиг JBoss? Конфигурация java? Как я могу заставить java.io.File читать файл, используя UTF-8 в качестве кодировки имени файла?

Я использовал другие инструменты, и имя всегда читается нормально, используя UTF-8.

(обратите внимание, что я всегда говорю об имени файла, но не о его содержимом, это может быть пустой файл)

6
задан Llistes Sugra 30 September 2010 в 16:32
поделиться