java - 在 Java 中使用 Apache Tika 进行解析时,PDF 项目符号以问号形式出现

标签 java apache-tika

我正在使用 Apache Tika (tika-app-1.3) 和以下代码解析 PDF 文件:

InputStream input = new FileInputStream("Introduction.pdf");  
AutoDetectParser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler(100 * 1024 * 1024);
Metadata metadata = new Metadata();
parser.parse(input, handler, metadata);
System.out.println(handler.toString());

handler.toString() 正在显示 PDF 文本,但此文本还包含项目符号,它们显示为 ? 符号,但我希望这些项目符号为-是。有没有办法使用 Apache Tika 获取原始的、按原样的内容?或者解析时需要在哪里定义编码?

最佳答案

问题很可能是您的程序用于写入控制台的编码与控制台用于处理程序输出的编码不匹配,或者您的控制台使用的字体可能没有相应的字形特点。请参阅this answer .

一种检查方法是打印字符串中字符的数值。然后你就会知道文本是否包含 ? (U+003F) 与否。

PDF 甚至可能包含项目符号图像而不是字符。

关于java - 在 Java 中使用 Apache Tika 进行解析时,PDF 项目符号以问号形式出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17550858/

相关文章:

solr - 如何指示 ExtractingRequestHandler 仅解析文档的正文?

使用 Apache Tika 库编译 Java 程序 - 依赖项

java - 如何设置 jComponent 在手动调整大小时自动获取父级大小?

java - 重新分配作业 : "Could not create the Java virtual machine."

java - 在反序列化方法中,如何找到当前正在反序列化的字段( token )的父级?

java - 为什么我不能在 Android 上使用 Override 注释?

Java 将作为 Rest API 响应返回的 pdf 转换为文本

Solr ExtractingRequestHandler 在链接中提取 "rect"

java - 在 Java 中为变量分配动态名称

Java EE 编程技巧