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

Java 如何为在JTextPane的单独JFrame上打开的文件设置UTF-8编码,java,swing,utf-8,jframe,jtextpane,Java,Swing,Utf 8,Jframe,Jtextpane,我有一个单独的类,它有一个JFrame,当用户单击我的主框架上的按钮时就会打开。框架有一个显示内容的JTextPane。我用下面写的代码打开我的文件。但在斯洛文尼亚,我们有一些字母显示不正确(例如烤鸡=piŧŧanec nažaru…其中ŧ、č和ž显示为正方形) 我的问题是,是否可以在不改变字体的情况下为文本或文件设置UTF-8编码?字体必须保持默认(使用NetBeans) 您必须指定正在读取的文件的编码 可以这样做: BufferedReader reader = new BufferedRe

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

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


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

可以这样做:

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

这个问题看起来与swing一点关系都没有,我会删除
swing
jframe
jtextpane
标签“separate
jframe
”请看@Oneiros它与swing有关,因为我正在使用它,有时候你可以不用编码解决问题,只需单击“设计-属性”窗口即可。@AndrewThompson谢谢您的评论,但我不想知道是否应该使用单独的框架。。。在我的例子中,我将使用一个以获得更好的用户体验。“在我的例子中,我将使用一个以获得更好的用户体验。”我向您的两位用户表示哀悼。您的回答对我帮助很大,我将上一行改为
BufferedReader reader=new BufferedReader(new InputStreamReader(new FileInputStream(f),“windows-1250”)并且它可以完美地工作:)
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(f), "UTF-8"));
textPane.read(reader, null);