无法读取 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 文件。
我有 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 文件。