【发布时间】:2014-01-06 22:02:39
【问题描述】:
这个问题不言自明。
我面临的问题是我在网上找到的任何 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 中的 String 变成可以写出来的东西时,你能设置编码吗?
-
我该怎么做呢?问题是,在这一点之后,我必须对字符串做很多事情,所以我基本上是在做 sw.toString() 并使用该结果来操作它。但这会丢失编码...
-
Java 中的字符串始终是 Unicode。您只需要在读入字节/文件/流并将其转换为字符串以及再次写回字符串时担心编码。因此,
new FileOutputStream("test.txt").write("Test".getBytes("iso-8859-1"));之类的东西应该可以以集合编码输出您的字符串
标签: java parsing apache-tika