Странная проблема с кодировкой символов имени файла в Ubuntu / Java / Glassfish

У меня есть приложение 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, которые я мог бы исправить, чтобы исправить эту ошибку, или, возможно, я что-то упускаю, и проблема не в

Заранее спасибо!

Эндрю

8
задан Andrew 22 August 2011 в 18:21
поделиться