我有 RTF
文件以 ANSI
编码,同时包含阿拉伯语
短语。我正在尝试读取此文件,但无法以正确的编码读取它。
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
类将 RTF 内容转储到 XML 文件中。该类在提供的输入文件上调用 StandardRtfParser
,而 RtfDumpListener
类在读取文件时接收解析器引发的事件,并将内容添加到 XML 文件中。去吧。
关于java - 无法读取包含阿拉伯字符的 RTF ANSi 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443782/