我最近試圖使用PDFBox從PDF文件中提取文本。它適用於大多數PDF,但對於一個PDF(不幸我不允許分享),句子中的所有時段都不會被提取出來。相反,我得到短語,如下列:從PDF中提取「空白」字符
...what it would be It’ll be important later on...
它看起來像,而不是一段空間,這只是一個空間,但它不是(至少在Mac OS X)。如果將文本複製到文本編輯器中,並開始將文本光標移動到短語中,則在「英尺」中的「t」後面會有一個「空字符」。重現:
- 將光標放在「英尺」中字母「t」的前面,然後按下右箭頭鍵 。光標向右移動一步。
- 再次按下右箭頭鍵,你保持正確的位置。
- 再按一次右箭頭鍵,你繼續到空間的另一側。
- 繼續按右方向鍵的行爲與預期
看來,PDFBox的替代一段提取某種「空字符」的。我試圖取代它的幾個不同的方式,但沒有運氣:
String oldText = text;
text = text.replace('\u0000', '.'); //Unicode null
text = text.replace('\0', '.'); //C null
System.out.println(oldText.equals(text)); //Returns true
//Also tried text.replace(null, '.'), but it doesn't compile
這是什麼「空字符」,我怎麼能與被認爲是有文字替換嗎?
編輯:This answer建議該字符可能是一個字符,如\uFEFF
,但試圖用正則表達式替換它,如建議不起作用。
,你不能共享文件(並感到不得不說的話),這一事實使得摘錄「將他的腳無論哪種方式,」有點令人毛骨悚然:-P – 2013-03-26 23:41:50
哈哈,是啊!也許這不是分享的最好例子,因爲它與上下文無關。我改變了這個例子。 – Thunderforge 2013-03-26 23:46:06