Java: кодировка UTF8 не отображается правильно в JTextArea - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь отобразить содержимое файла txt или docx в JTextArea, но текстовая область не корректно отображает армянский или русский текст.UTF-8, заключающийся в InputStreamReader, не помогает:

public class TextReader {

    public static String getText(File textFile) throws IOException {
        FileInputStream fis = new FileInputStream(textFile);
        InputStreamReader isr  = new InputStreamReader(fis, "UTF8");
        BufferedReader br  = new BufferedReader(isr);
        StringBuilder text = new StringBuilder();

        String c;

        while ((c = br.readLine()) != null)
            text.append(c + "\n");

        fis.close();
        isr.close();
        br.close();

        return String.valueOf(text);
    }

}

Я использую этот статический метод в другом классе в JTextArea:

        String text = TextReader.getText(currentFile);
        textArea.setText(text);

После запуска и выбора файла я получил случайныйперсонажи.Какое может быть решение в этом случае?

1 Ответ

0 голосов
/ 02 октября 2018

Ваш код, кажется, в порядке.Я думаю, вы пытаетесь прочитать файл docx.

Вы не можете напрямую читать docx файлы таким образом.Используйте какую-нибудь библиотеку, например Apache POI .

Если вы действительно используете текстовый файл, возможно, приложение, которое вы используете для сохранения файла, использует неправильную кодировку.Вы можете попробовать сохранить некоторый (жестко запрограммированный) образец русского текста, используя саму Java, в текстовый файл и снова прочитать его в свой JTextArea.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...