我使用PDFminer中的pdf2text将PDF文件转换为文本。不幸的是,它包含特殊字符。请看控制台输出:
这是一个关于IT技术的示例,以下是部分内容:
我理解我必须对其进行编码。
>>>a=pdf_to_text("ap.pdf")
这是一个关于IT技术的示例,以下是部分内容:
这里是一个简短的截断示例
>>>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,所以很难(据我所知)进行控制。怎样才能从这个输出中生成适当的纯文本?
我做错了什么吗?
--一个快速解决方案:将PDFminer的编解码器更改为ascii,但这不是一个持久的解决方案--
--放弃了快速修复答案-更改编解码器会删除信息--
--一个相关的话题,由Maxim提到:http://en.wikipedia.org/wiki/Windows-1251--