字符串中隐藏的 unicode 字符集

Set of hidden unicode characters in a string

一些隐藏的 Unicode 字符集出现在需要删除的字符串中。

我有一个非常大的文本,它是使用 PyPDF2 包从 PDF 文件中提取的。现在这个提取的文本有很多问题(比如 PDF 中表格中的文本在提取时会随机出现)并且很多特殊字符也嵌入其中(比如 ~~~~~~~, }}} }}}}} 等),尽管这些文本在作为 PDF 文件查看时不存在。我尝试使用 this, this and this link 中描述的解决方案删除这些字符,但问题仍然出现

myText = "There is a set of hidden character here => <= but it will get printed in console"

print(myText)

现在我想要一个没有那些隐藏字符的干净文本。

字符 \x7fascii character DEL,这解释了为什么您的尝试没有奏效。要删除所有 "special" 个 ascii 字符,请使用此代码:

bytes.decodedocumentation.

请看这里
import string
a = b'There is a set of hidden character here =>\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f <= but i will get printed in console'
print(repr(a))
print(repr(''.join(i for i in a.decode('ascii', 'ignore') if i in string.printable)))

或者这个如果你不想导入字符串:

a = b'There is a set of hidden character here =>\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f <= but i will get printed in console'
print(repr(a))
print(repr(''.join(i for i in a.decode('ascii', 'ignore') if 31 < ord(i) < 127 or i in '\r\n')))