无法读取 RTF ANSi 文件包含阿拉伯字符

Can't Read RTF ANSi File contains Arabic Characters

我有 RTF 个文件以 ANSI 编码,同时包含 Arabic 个短语。我正在尝试读取此文件,但无法以正确的编码读取它。

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()));

错误的输出是:

ÊÑÌãÉ: ÓãíÑ ÇáãÌÐæÈ

试试 RTFParserKit,这应该能正确支持您所描述的编码。

这是它从您的示例中提取的文本:

ترجمة: سمير المجذوب

我使用 RTFParserKit 附带的 RtfDump class 将 RTF 内容转储到 XML 文件中。 class 在提供的输入文件上调用 StandardRtfParser,而 RtfDumpListener class 接收解析器在读取文件时引发的事件,将内容添加到 XML 文件。