0

JEdi​​torPane でアラビア語の 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 に答える