【发布时间】:2021-04-18 12:50:03
【问题描述】:
我有一个将数据插入 PDF 的过程,该过程最终加载到系统中,该系统会根据插入的数据进行搜索。插入的数据如下所示:
<<
/IBM-ODIndexes
<< /Private
<<
/DOB (05031983)
/FULL_NAME (TEST USER)
/YEAR (2020)
>>
/LastModified(D:20210112201530)
>>
但是,在某些情况下,FULL_NAME 字段中的数据包含非 UTF8 字符,然后用户无法搜索数据。具体来说,撇号来自 Microsoft Word,然后被解释如下:
/FULL_NAME (JERRY OÃ<83>¢ââ<80><9a>‰â<80><9e>¢CONNELL)
在这种情况下,我希望去掉表示为 Ã<83>¢ââ<80><9a>‰â<80><9e>¢ 的撇号并将其替换为空格。
【问题讨论】:
-
提供有关您的 INPUT 数据外观的更多信息,它是一组文件吗?它是否只包含要插入的数据?从
tr -c '\n[:alnum:]/<>():_-' ' ' < inputfile开始,根据您的输入找出哪些字符被错误删除(删除-c以仅查看删除的字符) -
@Camusensei - 输入数据是 PDF,我们有软件在其中抓取该数据并将其保存到平面文件中,以便以后插入数据中。
-
如果它总是撇号,并且总是被表示为
Ã<83>¢ââ<80><9a>‰â<80><9e>¢——那么你是否有理由不使用明显的kludge,而是像:% s/Ã<83>¢ââ<80><9a>‰â<80><9e>¢/ /一样进行全局替换?