При попытке открыть файл он сообщает, что он не может быть найден из-за несоответствия кодировки, когда имена файлов имеют диакритические знаки. Я работаю с 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.
(обратите внимание, что я всегда говорю об имени файла, но не о его содержимом, это может быть пустой файл)