簡體   English   中英

Java:UTF8編碼未在JTextArea中正確顯示

[英]Java: UTF8 encoding is not displayed correctly in JTextArea

我試圖在JTextArea中顯示txt或docx文件的內容,但是文本區域無法正確顯示亞美尼亞語或俄語文本。 InputStreamReader中的UTF-8編碼無效:

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);

運行並選擇文件后,我得到了隨機字符。 在這種情況下,解決方案是什么?

您的代碼似乎很好。 我的猜測是您正在嘗試讀取docx文件。

您無法通過這種方式直接讀取docx文件。 使用一些庫,例如Apache POI

如果您確實在使用文本文件,則可能是您用來保存文件的應用程序使用了錯誤的編碼。 您可以嘗試使用Java本身將一些(硬編碼)示例俄語文本保存到文本文件,然后再次將其讀入JTextArea

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM