Ошибка в коде 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.