Не удается прочитать китайские иероглифы в файле Excel
Я разработал Java-приложение, которое будет читать файл Excel, содержащий китайские символы, и конвертировать его в несколько файлов CSV. Файл выглядит следующим образом:
public class SplitterBean {
public static final Logger LOGGER = LoggerFactory.getLogger(SplitterBean.class);
public List<Map<String, String>> splitBody(XSSFWorkbook workbook) {
LOGGER.info("Inside SplitterBean, splitting: " + workbook.getNumberOfSheets());
Map<String, String> sheetMap = null;
List<Map<String, String>> sheetList = new ArrayList<Map<String,String>>();
int numberOfSheets = workbook.getNumberOfSheets();
XSSFFormulaEvaluator.evaluateAllFormulaCells(workbook);
for (int i = 0; i < numberOfSheets; i++) {
StringBuilder sb = new StringBuilder();
sheetMap = new HashMap<String, String>();
XSSFSheet sheet = workbook.getSheetAt(i);
String sheetName = sheet.getSheetName();
for (Row row : sheet) {
for (Cell cell : row) {
String cellValue = null;
LOGGER.info("Cell type is: " + cell.getCellType());
switch (cell.getCellType()) {
case NUMERIC:
cellValue = Double.toString(cell.getNumericCellValue());
break;
case STRING:
cellValue = cell.getStringCellValue();
break;
case BLANK:
cellValue = "";
break;
case FORMULA:
LOGGER.info("Reached formula cell, cell type is: " + cell.getCellType().toString());
switch (cell.getCellType()) {
case NUMERIC:
cellValue = Double.toString(cell.getNumericCellValue());
break;
case STRING:
cellValue = cell.getStringCellValue();
break;
case BLANK:
cellValue = "";
break;
default:
cellValue = "";
break;
}
default:
cellValue = "";
break;
}
sb.append(cellValue).append(",");
}
sb.append("\n");
}
sheetMap.put(sheetName, sb.toString());
sheetList.add(sheetMap);
}
return sheetList;
}
}
Мы развертываем наш проект как файл войны в Wildfly 17.0.1.FINAL. Но когда создается файл CSV, китайские иероглифы искажаются. Я предполагаю, что это связано с кодировкой сервера, которую мне нужно изменить на UTF-8. Может ли кто-нибудь подсказать мне, как изменить кодировку сервера в Wildfly 17.0.1.FINAL или как эту проблему можно решить?