[英]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.