将字节转换为字符串然后无法打印字符串

问题描述 投票:0回答:1

我努力将字节从PDF转换为字符串。当我运行代码时,它说它转换为类str,但是当我尝试打印它时,出现此错误:

UnicodeEncodeError: 'charmap' codec can't encode character '\uf0b7' in position 432: character maps to <undefined>

我已经尝试了12种设置的“ decode”函数,如果在unicode转换格式后没有“ ignore”或“ reversebackslash”,它就无法工作。

我希望能够打印和使用字符串,但最终,我想计算PDF中关键字出现的次数。有没有一种更好的方法可以执行此操作,而无需转换为字符串?

def pdf_to_text(path):
    manager = PDFResourceManager()
    retstr = BytesIO()
    layout = LAParams(all_texts=True)
    device = TextConverter(manager, retstr, laparams=layout)
    filepath = open(path, 'rb')
    interpreter = PDFPageInterpreter(manager, device)

    for page in PDFPage.get_pages(filepath, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue().lower()
    filepath.close()
    device.close()
    retstr.close()
    text_str = text.decode('utf-8', 'ignore')
    print(type(text_str))
    print(text_str)
    return text
python string byte
1个回答
0
投票

我在Google上将其保存,并且我有资金认为此'\ uf0b7'字符是printatl字符。我相信您可以不使用此字符而从PDF打印文本,因为它是PDF协议的一部分。因此,如果您删除此字符,它可能会对您有所帮助。试试这个网站:Removing all invalid characters (e.g. \uf0b7) from text

© www.soinside.com 2019 - 2024. All rights reserved.