我有一个包含希伯来语的 Microsoft Word 文档,其中的一些元音标记似乎与它们应该所在的字母分开。
例子:
用一个字符串分析器,我确定发生这种情况的字母被解释为“字母表示形式”,而不是常规希伯来字母。(在上面的例子中,带点的 gimmel 的 unicode 值为 U+FB32,而不是 U+05D2 和 U+05BC。)
有什么方法可以将所有内容转换为标准希伯来语 Unicode 字符,以便元音能够正确显示?
谢谢!
答案1
尝试一下这个 niqqud添加在,也许您添加 niqqud 的方式出了问题。
答案2
你的测试文档在 Word 2007 上似乎显示正常,但当我将文本从其中复制并粘贴到BabelPad编辑器,它显示错误,和图片一样。当我使用 BabelPad 命令转换 → 规范化形式 → NFC 时,显示问题得到修复。
问题似乎不在于预组合字符(如 U+FB32 HEBREW LETTER GIMEL WITH DAGESH),而在于与后面的附加组合标记(如 U+05B7 HEBREW POINT PATAH)结合使用。有些程序无法处理此类组合,即使它们可以处理完全分解的形式(基本字母后跟两个组合标记)。
不可能(也可能无关紧要)知道字符组合是如何进入文件的。它们是有效的 Unicode 数据,但未规范化,规范化大概可以解决问题。似乎您确实可以使用任何 Unicode 规范化形式,但出于一般原因,NFC 通常是首选。
据我所知,Word 没有标准化工具,因此您需要使用外部工具。BabelPad 适用于纯文本,但我不知道它处理大文件的效果如何,并且您可能需要保留一些格式。因此,也许您可以将文件保存为 HTML,在 BabelPad 中将数据标准化为 NFC,然后在 Word 中打开经过修改的 HTML 文件。(我首先想到使用 RTF 而不是 HTML,但 Word 似乎生成的 RTF 不包含实际的希伯来语字符,但包含一些转义符号。)
答案3
我无法将其作为评论提交,因此我将提交它作为答案。根据@Jukka K. Korpela 的建议,我编写了一个 Word 宏,将预制字符转换为“正常”字符。可以下载这里。