我RTF
文件ANSI
进行编码,而它包含Arabic
短语。我试图读取这个文件,但无法用正确的编码读取它。无法读取RTF文件ANSI包含阿拉伯语Charachters
RTF文件:
{\rtf1\fbidis\ansi\deff0{\fonttbl{\f0\fnil\fcharset178 MS Sans Serif;}{\f1\fnil\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\ltrpar\lang12289\f0\rtlch\fs16\'ca\'d1\'cc\'e3\'c9: \'d3\'e3\'ed\'d1 \'c7\'e1\'e3\'cc\'d0\'e6\'c8\f1\ltrch\par
}
和我的Java代码:
RTFEditorKit rtf = new RTFEditorKit();
Document doc = rtf.createDefaultDocument();
rtf.read(new InputStreamReader(new FileInputStream("Document.rtf"), "windows-1256"),doc,0);
System.out.println(doc.getText(0,doc.getLength()));
和错误的输出是:
ÊÑÌãÉ: ÓãíÑ ÇáãÌÐæÈ
据我所看到的,摆不配套,默默忽略,您的RTF文件的'\ fcharset178'指令并没有什么可以做它作为参与这一进程的所有相关类是非'public '... – Holger
那么有什么方法可以替换'RTF'文件中的某些字符来正确读取它?或者一般情况下有o JAVA库从'RTF'文件中读取阿拉伯字符? – Jason4Ever