4

質問はかなり自明です。

私が直面している問題は、以下に示すように、オンラインで見つけた 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);
4

2 に答える 2

3

エンコーディングは、メタデータ オブジェクトによって設定できます。私はこのスニペットを使用しました:

import org.apache.tika.metadata.Metadata;

Metadata metadata = new Metadata();
metadata.add(Metadata.CONTENT_ENCODING, DATAFILE_CHARSET);
String parsedString = tika.parseToString(inputStream, metadata);

デフォルトでは、tika は html を解析するときにエンコーディング自体を決定しようとします。しかし、これがエラーにつながる場合もあります。

于 2013-11-27T18:59:41.960 に答える