Артефакт сборки Intellij - исполняемый jar UTF-8

Я создал проект, который читает файл csv (сохраненный как csv UTF-8). в моем проекте я читаю каждую строку этого CSV-файла. Вывод каждой строки отображается в файле журнала.

Теперь, когда я запускаю свой проект в intellij и просматриваю файл журнала, все строки доступны для чтения. Но когда я создаю артефакт из своего проекта, а затем запускаю эту банку, некоторые символы в csv заменяются знаком '?' символ ..

я просмотрел настройки моего проекта в кодировке файлов и там тоже все UTF-8.

Я понятия не имею, как это возможно. Кто-нибудь может мне помочь? Спасибо !


person metalgastje    schedule 14.10.2020    source источник
comment
Помогает ли это, если вы запустите его с параметром -Dfile.encoding=UTF-8 VM из jar командной строки?   -  person CrazyCoder    schedule 15.10.2020
comment
Можете ли вы привести пример полной строки, которую я должен ввести в cmd?   -  person metalgastje    schedule 15.10.2020
comment
Да, это работает ! большое большое спасибо !   -  person metalgastje    schedule 15.10.2020


Ответы (2)


Укажите кодировку при запуске приложения из командной строки следующим образом:

java -Dfile.encoding=UTF-8 -jar yourapp.jar param1 param2

Или измените код вашего приложения, которое читает/записывает файлы, чтобы явно указать правильную кодировку.

person CrazyCoder    schedule 14.10.2020

Когда я указываю -Dfile.encoding=UTF-8, мне нужно поместить этот параметр кодировки между двумя, однако это не работает, и возвращается ошибка. Может кому поможет с такой же проблемой как у меня.

java "-Dfile.encoding=UTF-8" -jar app.jar
person Naugrim.    schedule 07.05.2021