java - JEdi​​torPane 在通过 BufferedReader 读取时不显示特殊分隔符

标签 java swing jeditorpane

我正在创建一个自定义 XML 编辑器。我的 xml 文件包含许多特殊分隔符,例如 ▪ ¥ ‡ § 等。但是,当我读取文件并在 JEditorPane 中显示时,它不会读取该文件并显示其他内容,例如 • 的 ' 以及一些奇怪的字符。那么如何读取并显示文件的原样呢?下面是我编写的打开文件的代码:

void openFile(){
   BufferedReader br;
   try{
      File file=open.getSelectedFile();    
      br=new BufferedReader(new FileReader(file));
      StringBuffer content=new StringBuffer("");
      String line="";
      while((line=br.readLine())!=null){
         content.append(line+"\n");
       }
      br.close();
      getEditorPane().setText(content.toString());
      getEditorPane().setCaretPosition(0);
      edit_tab.setTitleAt(edit_tab.getSelectedIndex(),file.getName());
      fileNames.put(edit_tab.getSelectedIndex(),open.getSelectedFile().toString());
      tab_title[edit_tab.getSelectedIndex()]=file.getName();
   }
   catch(Exception e){
       JOptionPane.showMessageDialog(this,"Error reading file","READ ERROR",JOptionPane.ERROR_MESSAGE);
   }
}

谢谢...

最佳答案

设置编码的正确方法是使用FileInputStream和InputStreamReader读取文件,我们可以在InputStreamReader的构造函数中设置编码,如下所示:

        InputStreamReader is;
        FileInputStream fs;
         try{
                File file=open.getSelectedFile();   
                fs=new FileInputStream(file);
                is=new InputStreamReader(fs,"UTF-8");
                br=new BufferedReader(is);
                StringBuffer content=new StringBuffer("");
                String line="";
                while((line=br.readLine())!=null){
                   content.append(line+"\n");
                 }
                br.close();
                getEditorPane().setText(content.toString());
          }
          catch(Exception e){

          }

关于java - JEdi​​torPane 在通过 BufferedReader 读取时不显示特殊分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3922956/

相关文章:

java - 当线程条件为 true 时,内部是否可以进行时间检查

java - 在基于 JEditorPane 的浏览器中启用 javascript 的代码

java - 自己插入 LeafElement

java - 为什么 JOptionPane 中的 JScrollPane 不显示其所有内容?

java - 组件更改大小后文本消失

Java 字符串导入 java.lang.String

java - 演示与 Java 的字符串比较

java - 处理命令行程序中的选项

java - 我如何在 java 中向我的 Gui 添加一个按键监听器

java - 使用 switch 语句为 jbuttons java 提供操作