Задать вопрос
Kaaboeld
@Kaaboeld
Web-разработчик

Как решить проблему с кодировкой в java проекте когда он в utf, а данные в win1251?

Проблема проявляется только, если запускать проект в linux(ubutu, netbeans, если это важно).
База firebird запущена в windows, если проект запущен так же в windows, то данные из базы отображаются "корректно", если в linux, то - "кракозябрами".

В настройках jdbc "везде" стоит utf8(изменение настроек на win1251 не влияют на результат), данные в базе win1251.
Если приложение в netbeans(с теми же настройками) запущено в windows всё корректно.

Условие:
Изменить кодировку в базе нельзя.
  • Вопрос задан
  • 9007 просмотров
Подписаться 5 Оценить 2 комментария
Решение пользователя Евгений Попов К ответам на вопрос (4)
Kaaboeld
@Kaaboeld Автор вопроса
Web-разработчик
jdbc.databaseurl=jdbc:firebirdsql:127.0.0.1/0000:D:/base/base.fdb?encoding=utf8&useUnicode=true&characterEncoding=utf8

127.0.0.1 - ip сервера
0000 - порт
D:/base/base.fdb - путь до базы(сервер на windows)


encoding=utf8

Так вот я испробовал много различных вариантов указания кодировки и не только в данном конфиге, и случайно наткнулся на параметр encoding, и вот именно он сработал установив его значением utf8.
Самое интересное что это решение работает при запуске проекта под linux(ubuntu), но при этом если проект запустить с этим параметром на windows, то там начинает проявляться именно та проблема с кодировкой которую я и пытался побороть и следовательно параметры после "пути до базы" приходится там удалять, а под linux ставить обратно.
Ответ написан