У меня есть приложение Java, развернутое на веб-сервере Glassfish на ПК с Ubuntu Server Edition.
Один из Услуги, которые должно предоставить это приложение, - это смонтировать ISO-образ в определенную папку и скопировать все содержимое этой папки в другое место назначения.
Поскольку после того, как мой метод Java обнаружил кириллическое имя файла, он разбился. Это имя файла отображается как «???????????????. Txt» в журналах серверных приложений.
Сначала я подумал, что это проблема Linux, потому что этот файл также неправильно отображается в терминале . После того, как я добавил локаль CP1251, проблема в терминале Linux была решена, но мое приложение по-прежнему вызывало ошибку.
Один парень из UbuntuForums (http://ubuntuforums.org/showthread.php?t=1813920) предложил мне преобразовать это плохой файл с помощью утилиты "convmv", но в выводе этой утилиты говорилось, что этот файл уже был UTF-8.
После этого я создал тестовое приложение с теми же методами и запустил его на том же ПК, но точно так же, как " java Test $ arguments $ ".
И это сработало!
Простой метод System.out.println правильно отобразил имя файла и успешно скопировал проблемный файл в другую папку.
Этот факт не оставил мне выбора, кроме как заявить о Glassfish как о пробеле. между моим классом, java и linux (хотя я не уверен, как это возможно).
Есть ли какие-либо настройки кодировки символов в Glassfish, которые я мог бы исправить, чтобы исправить эту ошибку, или, возможно, я что-то упускаю, и проблема не в
Заранее спасибо!
Эндрю