gpt4 book ai didi

python - 为什么我得到的是 "ق"而不是 "fi"?

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:42 24 4
gpt4 key购买 nike

我从文档中提取文本,我注意到文本中有一些未知字符,例如:

"An adversary modiقes the aggregation result"

很明显 ق 不是真正的字符,应该替换为“fi”——还有其他类似的例子。

我可以使用 python 将这些字符替换为正确的英文字符吗?

我编写了以下代码来从 pdf 文件中提取和解码文本流:

import zlib

file = open ("PDF_File.pdf"."rb").read() # read pdf file
objectPDF = re.findall('(\d+ \d+ obj.+?endobj)',file , re.DOTALL) # extract pdf
# objects
for item in objectPDF :
pdfstreams = re.findall('stream(.*?)endstream',item , re.DOTALL) # extract text
# stream
# encoded by
# flatedecode filter
for item in pdfstreams :
buffer = item
decomp = zlib.decompress(buffer) # decode each stream
pdf_txt = open("Txt_PDF.txt","w")
pdf_txt .write(decomp) # write the text to file
pdf_txt .close()

最佳答案

你有一个编码错误:

>>> print u"modiقes".encode("cp1256").decode("mac_roman")
modifies

请注意,有问题的字符不是对字符对 fi 进行修饰的结果,而是对单个字符 fi ( U+FB01 'LATIN SMALL LIGATURE FI' ) 进行修饰的结果。

如果没有看到您的代码,就不可能确切地说这是怎么发生的,但归结为:您试图解码 Mac OS Roman文本为 Windows 1256 .如果您停止这样做,问题就应该停止。

关于python - 为什么我得到的是 "ق"而不是 "fi"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27894201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com