如何为在 JTextPane 上的单独 JFrame 上打开的文件设置 UTF-8 编码
How to set UTF-8 encoding for a file which opens on a seperate JFrame on a JTextPane
我有一个单独的 class 和一个 JFrame
,当用户单击我的主框架上的按钮时打开。该框架有一个 JTextPane
显示内容。我用下面编写的代码打开我的文件。但在斯洛文尼亚,我们有一些字母无法正确显示(例如,Grilled chicken = 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);
我有一个单独的 class 和一个 JFrame
,当用户单击我的主框架上的按钮时打开。该框架有一个 JTextPane
显示内容。我用下面编写的代码打开我的文件。但在斯洛文尼亚,我们有一些字母无法正确显示(例如,Grilled chicken = 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);