В чем отличие при подключении по SSH через Putty и через терминал Ubuntu?
Добрый день!
Столкнулся с проблемой при запуске jar файла.
Сборку jar файла осуществляю с помощью maven-а на базе платы raspberry pi подключаясь к ней через ssh терминал.
Когда подключаюсь через putty-клиент или из-под Windows или из-под Linux, осуществляю сборку и потом запуск файла на исполнение, то все работает хорошо, проблем нет.
Однако когда подключаюсь непосредственно через терминал Ubuntu и произвожу те же операции сборки и запуска, проект работает неправильно, в частности некорректно работают парсеры.
В проекте используются парсеры, работающие с символами русского и украинского языка.
Насколько я понимаю, это как-то связано с кодировкой.
Я перепроверил, собрав проект подключивших через putty, но запустив непосредственно из терминала Ubuntu и проект нормально не работает. Т.е. проблема именно при запуске.
Я проверяю кодировку с помощью echo $LANG и получаю везде одинаковый ответ en_GB.UTF-8
Подскажите пожалуйста в чем конкретно проблема и куда копать дальше.
В чем отличие при подключении по SSH через Putty и через терминал Ubuntu?
Boris Korobkov, спасибо! Я закомментировал SendEnv LANG LC_* и это помогло. Т.е. до этого получается что сервер вынужден был запускать процесс в кодировке клиента, а теперь он работает в своей кодировке по-умолчанию?
Вероятнее всего парсеры внутри джава приложения используют кодировку по умолчанию.
Как вариант решения можно рассмотреть:
- задать переменные user.language, user.country and user.variant
пример:
java -Duser.language=ru -Duser.country=RU -cp ....
- если исходный код доступен, то я бы убрал использование дефолтных кодировок и явно передавал необходимые кодировки.
- ну и как вариант можно смотреть. переменные окружения при поделючениях.
lexas, спасибо за Ваш ответ! Он заставил меня более внимательно присмотреться к используемым в проекте кодировкам по-умолчанию и задействовать forbidden-apis для поиска подобных мест в проекте.
В Putty по умолчанию стоит koi8-ru в качестве кодировки. Под линуксами, макосями и проч nix терминалах стоит utf8 по умолчанию. Проверьте настройки терминала в putty (это не локаль, а отображение символов терминалом.)