2017-02-23 55 views
1

我在Python中使用pdfminer包将PDF转换为HTML,但它将撇号转换为特殊字符。例如:Python pdfminer pdf2html:撇号转换为特殊字符

‘This is a text between apostrophes’

应该是:

'This is a text between apostrophes'

有什么办法,以特殊字符转换回撇号或更改编码或东西吗?我不太熟悉字符编码。也许我可以选择转换为HTML的编码?

+0

你可以显示你用来阅读PDF的代码吗?你能指定你正在使用的Python版本(“pdfminer”的API在2.x和3.x之间改变了)吗? – Schmuddi

回答

0

我假设报价是unicode字符'左单引号'(U + 2018)和'右单引号'(U + 2019)。编码UTF-8,他们是:

'\xe2\x80\x98This is a text between apostrophes\xe2\x80\x99' 

在此文本的字节为:

'\xc3\xa2\xe2\x82\xac\xcb\x9cThis is a text between apostrophes\xc3\xa2\xe2\x82\xac\xe2\x84\xa2' 

这是每个报价,这让我怀疑,如果字符串被多次编码8个字节。我尝试了几种组合:

>>> u'\u2018'.encode('utf-8').decode('iso-8859-1').encode('utf-8') 
'\xc3\xa2\xc2\x80\xc2\x98' 

不幸的是,我无法重现您得到的结果。