sup*_*gob 5 java parsing apache-tika
这个问题是不言自明的。
我面临的问题是我在网上找到的任何 Tika 示例代码都使用 StringWriter,如下所示。如果我能以某种方式使其使用 OutputStreamWriter,我可以指定编码没有问题...任何帮助将不胜感激。
InputStream inStream = new FileInputStream(pathname);
StringWriter sw = new StringWriter();
SAXTransformerFactory factory = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
TransformerHandler handler = factory.newTransformerHandler();
handler.getTransformer().setOutputProperty(OutputKeys.METHOD,"html");
handler.getTransformer().setOutputProperty(OutputKeys.INDENT,"no");
handler.setResult(new StreamResult(sw));
parser.parse(inStream, handler, metadata, context);
Run Code Online (Sandbox Code Playgroud)
您可以通过元数据对象设置编码。我用过这个片段:
import org.apache.tika.metadata.Metadata;
Metadata metadata = new Metadata();
metadata.add(Metadata.CONTENT_ENCODING, DATAFILE_CHARSET);
String parsedString = tika.parseToString(inputStream, metadata);
Run Code Online (Sandbox Code Playgroud)
默认情况下,tika 在解析 html 时会尝试确定编码本身。但有时这可能会导致错误。