Не удается прочитать файлы ISO-8859-1 на Wildfly 10, работающем в Linux? - PullRequest
0 голосов
/ 11 марта 2019

Я использую автономный сервер wildfly 10.1.0 и jdk версии 1.8.0 с обновлением 161 (x64).

При чтении файлов в кодировке ISO-8859-1 возникает проблема при запуске wildflyв Linux.

Символы типа Ç и É остаются как Ã?.Когда код выполняется в Windows, все символы остаются в порядке.

Я проверил, и файл действительно закодирован как ISO-8859-1.Кроме того, код обеспечивает чтение файла как ISO-8859-1:

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "ISO-8859-1"));

Я пробовал перебирать все доступные кодировки, но не дал хороших результатов:

Charset.availableCharsets().keySet().stream().forEach( cs -> {
    try {
        Charset charset = Charset.forName(cs);
        BufferedReader bufferedReader = Files.newBufferedReader(importFile.toPath() , charset );
        File out = new File(outDir + cs + ".txt");
        BufferedWriter bufferedWriter = Files.newBufferedWriter(out.toPath(), charset , StandardOpenOption.CREATE);
        String ln = null;
        bufferedWriter.write(cs+"\n");
        while ( (ln = bufferedReader.readLine()) != null ) {
            bufferedWriter.write(ln + "\n");
            System.out.println(ln);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
} );

Как и ожидалось, это не проблема самой операционной системы, потому что, если я запускаю простую java-программу вне сервера приложений, которая читает тот же файл и записывает его содержимое, все идет отлично.

Кто-нибудь может мне помочь?Я тестировал Ubuntu 18.04 с UTF-8 в качестве кодировки системы по умолчанию.

...