[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кодировка исполнения java файла из под apache
Gradus
Есть java-программа которая получает аргументом путь до файла, который необходимо подписать электронной подписью через КриптоПро.
Из консоли прописываю
java example /path/file1.xml
Все круто работает, файл xml перезаписался.

Но когда через shell_exec
shell_exec('java example /path/file1.xml');

запускаю под apache, файл перезаписывается с кривой кодировкой.
Русские символы заменяются на "???".
Подскажите в какую сторону копать.



_____________
ДАВАЙ ДЕНЬГИ
R543264623869
kaww
Gradus, можно попробовать file.encoding=UTF-8 (или какую-то др. кодировку)
shell_exec('java -Dfile.encoding=UTF-8 example /path/file1.xml');
killer8080
так попробуй
shell_exec('LANG=ru_RU.UTF-8; export LANG; java example /path/file1.xml');
Gradus
не помогло sad.gif
Java программа тянет информацию еще об сертификатах, которые тоже почему-то отображаются в неправильной кодировке. Из консоли все норм.


_____________
ДАВАЙ ДЕНЬГИ
R543264623869
killer8080
Цитата (Gradus @ 5.10.2015 - 08:07)
Из консоли все норм.

Раз в консоли норм, значит все дело в переменных окружения, что выдаёт в консоли ?
echo $LANG
Gradus
killer8080, символ C

_____________
ДАВАЙ ДЕНЬГИ
R543264623869
killer8080
Цитата (Gradus @ 5.10.2015 - 08:21)
символ C

это в консоли, или через апач php?
Если консоль русифицирована должна быть ru_RU.UTF-8 или что то типа того.
kaww
Gradus, С используется для отключения локализации. Попробуй LANG=ru_RU.UTF-8 заменить на LANG=C
killer8080
команда env покажет переменные окружения, сравни в консоли и в php.
Gradus
Цитата (killer8080 @ 5.10.2015 - 05:25)
Цитата (Gradus @ 5.10.2015 - 08:21)
символ C

это в консоли, или через апач php?
Если консоль русифицирована должна быть ru_RU.UTF-8 или что то типа того.

это из апача. В консоли выводит utf-8

_____________
ДАВАЙ ДЕНЬГИ
R543264623869
killer8080
Цитата (Gradus @ 5.10.2015 - 08:29)
В консоли выводит utf-8

пропиши точно так же как в консоли, в моем примере с экспортом, должно работать
Gradus
killer8080, вроде помогло, когда кодировку другую указал

shell_exec('LANG=en_US.UTF-8; export LANG; java example /path/file1.xml');


_____________
ДАВАЙ ДЕНЬГИ
R543264623869
killer8080
Цитата (Gradus @ 5.10.2015 - 10:29)
вроде помогло, когда кодировку другую указал

походу русская локаль не установлена, в дебиан образных дистрах устанавливается через
sudo dpkg-reconfigure locales
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.