這個問題是不言自明的。如何在使用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);
當你將字符串從StringWriter轉換成被寫出的東西時,你可以設置編碼嗎? – Gagravarr
我該怎麼做呢?問題是,在這之後,我必須對字符串做一堆東西,所以我基本上在做sw.toString()並使用該結果來操縱它。但是失去了編碼... – superdemongob
Java中的字符串始終是Unicode。在讀取字節/文件/流時,只需要擔心編碼,並將其轉換爲字符串,並再次寫入字符串。所以,像'新的FileOutputStream中(「的test.txt」)寫(「測試」 .getBytes(「ISO-8859-1」));'應該是罰款一組編碼輸出您的字符串 – Gagravarr