java - 如何为在 JTextPane 上的单独 JFrame 上打开的文件设置 UTF-8 编码

标签 java swing utf-8 jframe jtextpane

我有一个带有 JFrame 的单独类,当用户单击主框架上的按钮时,该类将打开。该框架有一个显示内容的JTextPane。我用下面写的代码打开我的文件。但在斯洛文尼亚,某些字母无法正确显示(例如,烤鸡 = piščanec na žaru...其中 š、č 和 ž 显示为正方形)。

我的问题是,是否可以在不更改字体的情况下为文本或文件设置 UTF-8 编码?字体必须保持默认(使用 NetBeans)。

public class EditFrame extends javax.swing.JFrame {

    public void readFile(File f) {
        try {
            textPane.read(new java.io.FileReader(f), null);
        } catch (IOException ex) {
            Logger.getLogger(EditFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    ...
}

最佳答案

您必须指定正在读取的文件的编码。

可以这样完成:

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(f), "UTF-8"));
textPane.read(reader, null);

关于java - 如何为在 JTextPane 上的单独 JFrame 上打开的文件设置 UTF-8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43256357/

相关文章:

java - Apache Beam::无法使用 java session 窗口进行 groupbykey 工作

java - HH 中的 JTextField 时间 :mm:ss

java - 我什么时候应该在java中使用 JFrame.add(component) 和 JFrame.getContentPane().add(component)

utf-8 - 数据 URI 中的字符集

mysql - GoLang - 坚持使用 ISO-8859-1 字符集

java - 给定一个单词列表 - 在 Java 中什么是单词完成的好算法?权衡 : Speed/efficiency/memory footprint

java - setText 方法上的 NullPointerException

java - Spring-Boot:如何设置 JDBC 池属性,例如最大连接数?

java - 如何创建覆盖 Windows 标题栏的 Java Swing 应用程序?

ruby-on-rails - VSCode 提示 Ruby UTF-8 文件具有无效的多字节字符 (US-ASCII)