Ошибка в коде Java для доступа к файлам со шведскими символами в Linux

Я написал следующий код Java в Unix для доступа к файлу с шведскими символами в имени файла.

System.out.println(System.getProperty("file.encoding"));
System.out.println(System.getProperty("sun.jnu.encoding"));

String filePath = "/tmp/newöäåå.txt";
System.out.println("File Path" + filePath);

File file = new File(filePath);
try {
    if(file.exists())
        System.out.println("length: " + file.length());
    else{
        System.out.println("file not found");
    }
} catch (Exception e) {
    System.out.println("inside exception");
}

Выход:

UTF-8
UTF-8
File Path /tmp/newöäåå.txt
file not found

Я создал файл только через unix. Можете ли вы помочь мне понять, что должно быть не так?

Операционная система Open SUSE

2 ответа

Если вы сохраните свой файл Java в UTF-8 - он будет работать.

Я думаю, что проблема может быть в самом коде. Файлы.java не сохраняются в кодировке UTF-8. Может быть, попытаться прочитать имя файла из внешнего файла UTF-8 или представить имя файла иначе или просто убедиться, что файл.java сохранен в кодировке UTF-8.

Другие вопросы по тегам