我使用PDFminer的pdf2text将PDF缩减为文本。不幸的是它包含特殊字符。让我从我的控制台显示输出
>>>a=pdf_to_text("ap.pdf")
下面是一个样本,有点截断
>>>a[5000:5500]
'f one architect. Decades ...... but to re\xef\xac\x82ect\none set of design ideas, than to have one that contains many\ngood but independent and uncoordinated ideas.\n1 Joshua Bloch, \xe2\x80\x9cHow to Design a Good API and Why It Matters\xe2\x80\x9d, G......=-3733'
我明白我必须编码它
>>>a[5000:5500].encode('utf-8')
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 237: ordinal not in range(128)
我搜索了一下并尝试了它们,特别是 替换python中的特殊字符 。输入来自PDFminer,因此它很难控制(AFAIK)。什么是正确的方法 纯文本 从这个输出?
我究竟做错了什么?
- 快速修复:将PDFminer的编解码器更改为ascii-但这不是一个持久的解决方案 -
- 解决了答案的快速修复 - 更改编解码器删除信息 -
- Maxim提到的一个相关话题 http://en.wikipedia.org/wiki/Windows-1251 -