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

标签 java character-encoding java-8 rtf

我有 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/

相关文章:

hash - 有效的 md5/sha1/etc 输入字符?

python - python 3中的字符编码转换

java - 在外部修改时流式传输并发集合是否安全?

java - 将 webcache 实现为 web 应用程序

java - 使用 Oracle、Java 和 AngularJS 构建实时数据网格的策略

java - 尽可能快地通过java读取具有数百万行的csv文件

netbeans-7 - 无法在 Netbeans 7.1.1+JDK8 (jdk-8-ea-bin-b35) 中编译 lambda

java - 来自 Java 注释处理器的 @SuppressWarnings

mysql - 如果我为 mysqld 添加一些默认字符和整理设置,Rails 无法连接到 mysql 服务器

lambda - Java流: transform user input to batches