Если проблемы возникают при чтении файлов (в отличие от вставки данных в БД), я предполагаю, что отключено системное свойство file.encoding
. Если вы создаете ридер без указания кодировки, он использует file.encoding
по умолчанию. Так что, если ваша система Linux имеет, скажем, UTF-8 в качестве системной кодировки, символы, отличные от ASCII-7, вызовут проблемы.
Вы можете изменить глобальную кодировку системы по умолчанию, установив для переменной среды LC_ALL
какое-то подходящее значение (я думаю, вы можете использовать что-то вроде en_US.ISO-8859-1
, но посмотрите руководство), или вы можете просто изменить его локально для Экземпляр JVM, указав его в командной строке:
java -Dfile.encoding=ISO-8859-1 -jar yourapp.jar
Если вы можете изменить код, который читает CSV, я бы предположил, что вы читаете (прямо или косвенно) из InputStreamReader
- просто предоставьте конструктору правильный CharSet
/ CharSetDecoder
и все готово. (Возможно, вы также захотите сделать это настраиваемым, но я полагаю, что вы можете решить это самостоятельно.)