0

我正在努力在 JEditorPane 中显示阿拉伯语 rtf。它显示错误的字符可能是因为它是错误的编码,我不知道如何修复它。

我能得到一些帮助吗?这是代码的相关部分。

                textPane.setEditorKit(new AdvancedRTFEditorKit());
                textPane.setBackground( Color.white );
                try {
                    BufferedReader fi = new BufferedReader(
                               new InputStreamReader(
                                          new FileInputStream("C:/test - Copy.rtf"), "UTF-8"));



                    rtf.read( fi, textPane.getDocument(), 0 );



                    System.out.println(textPane.getDocument());
                    System.out.println(rtf.toString());

                    } 
                catch( FileNotFoundException e )
                {
                System.out.println( "File not found" );
                }
                catch( IOException e )
                {
                System.out.println( "I/O error" );
                }
                catch( BadLocationException e )
                {

先感谢您。

4

1 回答 1

0
new InputStreamReader(new FileInputStream("C:/test - Copy.rtf"), "UTF-8")

您假设您的 .rtf 文件被编码为 UTF-8。如果您的结果看起来不对,那么该文件可能不是 UTF-8。如果是阿拉伯语,那么实际的字符集可能是 ISO-8859-6 或 Windows-1256。如果您在文本编辑器中打开该文件,它应该能够告诉您字符编码是什么。一旦你知道你可以使用:

new InputStreamReader(new FileInputStream("C:/test - Copy.rtf"), "Actual Charset Name")
于 2013-03-20T19:57:02.753 回答