首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Copy+pasting文件的希伯来文将导致最终字母被错误地复制。

来自Copy+pasting文件的希伯来文将导致最终字母被错误地复制。
EN

Stack Overflow用户
提问于 2017-07-11 12:44:58
回答 2查看 2.6K关注 0票数 0

所以我得到了一些希伯来文的PDF文件,我想要翻译成英语,当我试图把PDF文件中的文本复制到文本编辑器中时,所有希伯来文最终字母的都被错误地复制了。

我找到了this问题,但没有找到解决方案,这个问题只涉及一个被错误阅读的最后一封信,它只是指一个特定的库。

我试着从acrobat阅读器和chrome PDF查看器复制和粘贴内容,但是它们都没有正确地复制内容。

我发现的另一件有趣的事情是,当您在浏览器中Ctrl+F (我在铬上试用过)并搜索最后的字母"Pe“时,它会给出常规"Pe”和最终"Pe“的结果(反之亦然,当您搜索常规的”Pe“时),尽管它们有不同的代码点(以及ANSI代码页中的不同代码),这也很奇怪。(对于所有的最终字母和它们相应的正则字母都是一样的)

所以问题是-有人知道为什么会这样吗?

我知道可能没有实际的代码点映射到字形,但是在这种情况下,字符是如何呈现的呢?我对这个问题不太熟悉,所以我希望得到任何解释。此外,任何使我能够用最后字母提取文本的好的解决办法都将非常感谢,因为我想要解析文本,并且把字母搞得乱七八糟会导致不完整的词。

编辑:

根据魏伯德的要求,我要添加几个复制的单词和相应的正确单词。我也会加入他们的黑帮。

代码语言:javascript
复制
E1 F7 F8 1B    בקר.  # Should be בקרן (Final letter "Nun") Switches every 
final Nun with 1B instead of EF according to the windows 1255 code page.

F2 F1 F7 E9 E9 17 עסקיי. # Should be עסקיים (Final letter "Mem") Switches 
every final Mem with 17 instead of ED.  

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-14 18:31:54

因此,基于您的编辑,PDF文件似乎使用了一些奇怪的(与ASCII不兼容的)希伯来语编码来进行文本提取,它将字母的最终形式放置在1X区域,在该区域中,不可打印的控制字符是。

如果您只想重建PDF中的文本,最简单的解决方案可能不是更改PDF,而是在从PDF中复制文本后用正确的代码替换错误的代码。

例如,将从PDF复制的文本粘贴到file,然后:

代码语言:javascript
复制
cat file | tr '\033' '\357' | tr '\027' '\355' >out_file

也就是说,每个错误的最终字母都有一个tr。数字033357等只是十六进制字节1BEF等的八进制形式,您在hexdump中发现了这些形式。只需找出其余的映射并将它们添加到链中即可。然后,out_file应该包含正确编码的文本,您可以使用Windows1255使用某些文本编辑器打开它。

票数 1
EN

Stack Overflow用户

发布于 2017-07-12 15:07:13

对于为文本提取编码非拉丁非CJK文本的适当方法,PDF引用基本保持沉默(呈现象形文字不需要这些方法),但本质上有两种方法:第一种方法是拥有一个ToUnicode表(对于简单字体和复合字体),第二种方法是为简单字体指定一个编码字典,其中包含一个差异数组,该数组将标识每个字形的名称来自Adobe (例如,https://github.com/adobe-type-tools/agl-aglfn/blob/master/glyphlist.txt)。

标识-H编码意味着一个复合(双字节)字体,它可能有一个ToUnicode表.自定义编码意味着一个带有差异数组的编码字典。标准编码意味着没有指定任何预定义(或自定义)编码。

这三者的混合意味着一个非常混乱的起源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45035022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档