我使用Apache PDFBox建立pdf解析器,解析纯文本后,我运行了一些算法,最后输出了一个json文件。对于某些pdf文件,输出文件包含utf-8编码,对于其他pdf,它包含某种形式的latin-1编码(当在python中打开json文件时,空格显示为“ \ xa0”)。我认为这一定是字体或pdf其他特征的结果吗?
我的阅读纯文本的代码如下
PDDocument document = PDDocument.load(file);
//Instantiate PDFTextStripper class
PDFTextStripper pdfStripper = new PDFTextStripper();
//Retrieving text from PDF document
String text = pdfStripper.getText(document);
//Closing the document
document.close();
我试过只保存纯文本:
PrintWriter out = new PrintWriter(outPath + ".txt");
out.print(text);
如果将该纯文本文件读入dictionary,则即使在python中打开此纯文本文件也会产生“ \ xa0”字符而不是空格,从而产生以下结果:
dict_keys(['1. \ xa0 \ lorem \ xa0ipsum','2. \ xa0 \ lorem \ xa0ipsum \ xa0 \ lorem \ xa0ipsum','3. \ xa0 \ lorem','4. \ xa0 \ lorem \ xa0ipsum' ,'5. \ xa0 \ lorem \ xa0ipsum'])
我想确保文本始终被编码为utf-8。我该怎么做呢?
最佳答案
我想确保文本始终被编码为utf-8。我该怎么做呢?
如果要确保PrintWriter
使用UTF-8编码,请在构造函数中这样说:
PrintWriter out = new PrintWriter(outPath + ".txt", "UTF-8");
关于java - 如何设置PDFBox的字符编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54447903/