簡體   English   中英

如何設置PDFBox的字符編碼

[英]How to set character encoding for PDFBox

我使用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);

如果將這個純文本文件讀入字典中 ,則即使在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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM