在java中使用Apache Tika解析时,PDF项目符号将成为问号

我正在使用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获取原始的内容? 或解析时需要在哪里定义编码?

问题很可能是您的程序用于写入控制台的编码与控制台用于处理程序输出的编码不匹配,或者控制台使用的字体可能没有字符的字形。 看到这个答案 。

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

甚至可能是PDF包含子弹而不是角色的图像。