Проблема кодификации символов Java Excel Api - PullRequest
0 голосов
/ 27 июня 2019

Я разрабатываю Java-приложение, которое читает файл Excel и записывает его обратно в PDF с некоторой промежуточной обработкой.Для чтения электронных таблиц я использую отличную библиотеку jExcelApi, и это отрывок кода:

workbook = Workbook.getWorkbook(new File(fullName));

Sheet sheet = workbook.getSheet(0);

this.data.customer_name = sheet.getCell("B8").getContents();

Все работает, как и ожидалось, но я понял, что выходные данные на производственном компьютере отличаются от результатов на этапе разработки.,Это связано с кодировкой символов.Вот пример выходного файла на обоих компьютерах:

|-------------|-------------|
| Development | Production  |
|-------------|-------------|
| Söderkvist  | S��derkvist |
| Østnes      | ��stnes     |
| Müller      | M��ller     |
|-------------|-------------|

На компьютерах установлены Ubuntu 16.04 и 17.04, и, хотя они не совсем идентичны, я использую одинаковые JRE в обоих.Я просматривал документацию jExcelApi и нашел класс WorkbookSettings с методом для получения / установки кодировки символов, но я не знаю, как получить фактическую кодировку исходного файла XLS.Есть идеи?

Спасибо!

1 Ответ

0 голосов
/ 27 июня 2019

ASCII dev является UTF-8

WorkbookSettings workbookSettings = new WorkbookSettings();
workbookSettings.setEncoding( "UTF-8" );
Workbook.getWorkbook( theFile, workbookSettings );
...