【发布时间】:2014-07-11 01:18:49
【问题描述】:
我正在尝试使用 Tika 解析 Outlook 消息的 html 正文。当我在我的 Windows 机器上运行以下方法时,它工作正常,并且我得到了电子邮件正文的纯文本表示。
private String parseHtml(InputStream stream) throws Exception {
ContentHandler contenthandler = null;
try {
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
contenthandler = new BodyContentHandler();
parser.parse(stream, contenthandler, metadata, new ParseContext());
System.out.println(contenthandler.toString());
}
catch (Exception e) {
e.printStackTrace();
}
return contenthandler != null ? contenthandler.toString() : null;
}
但是,当我在 CentOS 虚拟机和物理服务器上运行相同的代码时,我得到了所有的 Outlook 标记。 Windows 中发生了一些事情,允许 Tika 检测到 centos 上不可用的文档类型。元数据显示,当我调试时:
Windows:Content-Encoding=US-ASCII Generator=Microsoft Word 14(过滤介质)Content-Type=text/html; charset=us-ascii Linux:Content-Encoding=US-ASCII Content-Type=text/plain; charset=US-ASCII
【问题讨论】:
-
我的第一个预感是您在 CentOS 机器上缺少一些关键的 Tika 依赖 jar。你确定你有同一套罐子吗?
-
你是对的,添加一个答案,我会选择它作为最佳答案。
标签: java apache-tika