У меня есть небольшая программа на Java, которая читает содержимое из файла .xlsx и записывает часть его в новый файл .json.В ячейках .xlsx есть несколько строк с немецкими умлаутами ("ä, ö, ü").
Моя проблема:
Если программа работает на MacOS, все работает нормально.
ЕслиПрограмма работает в Windows, умлауты отображаются в виде вопросительных знаков � в сгенерированном файле .json.
Что я пробовал:
1. установить кодировку текстового файла Project в IDE, в которой я работаю (Eclipse), на UTF-8
2. установить кодировку файла Excel(в Windows) до UTF-8
Вот базовая структура моего кода с использованием библиотек json simple, gson и apache-poi.
Чтение .xlsxfile:
FileInputStream in = new FileInputStream(file);
Workbook workbook = new XSSFWorkbook(in);
Функция, которую я использую повсеместно для чтения содержимого ячеек Row.getCell(index).getStringCellValue()
.
Я помещаю прочитанное содержимое в поле String объекта типа Spiel
и сгенерируйте соответствующий файл .json из этого объекта следующим образом:
FileWriter writer = new FileWriter("Levels.json");
Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
gson.toJson(spiel, writer);
writer.close();
Как я уже сказал, все работает нормально, когда я работаю на Mac.В файле Excel есть Umlauts, и когда я открываю сгенерированный файл .json в TextEdit (как файл в кодировке UTF-8), они отображаются нормально.
Если я запускаю в Windows и открываю сгенерированный файл .jsonнапример, на Wordpad все символы Umlauts заменяются этим знаком �.
Поскольку в будущем мне нужно запустить программу на Windows, мне действительно нужно решить эту проблему.Что я могу делать не так?