У меня возникла ситуация, когда NAS, подключенный к Linux, содержит имена файлов, которые имеют скандинавские символы, такие как ä, ö, å. Когда я перечисляю файлы с ls, я вижу все эти символы как вопросительные знаки (?). Если я запустил ls -b, я увижу кодированную версию имени файла. Подобные персонажи: \ 303 \ 205Невозможно прочитать специальные символы из имени файла
Мне нужно прочитать те файлы и их имена из моего кода Java, но я не могу. Если я использую File.listFiles для списка файлов, я получаю вопросительные знаки вместо правильных символов. Если я конвертирую файл в путь, я получаю исключение: java.nio.file.InvalidPathException: неверный ввод или ввод содержит несменяемые символы
Я могу избавиться от исключения, если установить Dsun.jnu.encoding = UTF-8 при запуске, но опять же я получаю вопросительные знаки вместо ä, ö или å.
Я попытался установить NAS с настройками, такими как check = relaxed, но не удача там.
Вся помощь приветствуется.
Можете ли вы напечатать * числовые * значки символов для имени файла, которое вы получаете без исключения, используя Dsun.jnu.encoding = UTF -8 и добавить это к вашему вопросу вместе с правильным именем файла? – laune
Это уже плохо, если «ls» неправильно отображает имена файлов. Вы настроили кодировку (по умолчанию для системы) на UTF-8? Если нет, java не может этого сделать. (Я предполагаю, что NAS использует UTF-8, иначе он будет более сложным). – Bram
Если я вхожу на сервер с Mac Cyberduck и перехожу на монтирование, я могу видеть правильные символы ... – tomtom