在文本编辑器和Python中处理Urdu双向文本

时间:2013-04-01 10:50:35

标签: python text-editor word-vba text-processing bidi

我想在MS Word文档中使用Python脚本处理一些双向文本(用乌尔都语和英语),该脚本将文本转换为表格标记。我无法直接访问Word文档中的双向文本,因为它是二进制格式,即使我将Word文档中的文本粘贴到文本编辑器,然后所有双向文本都会错误地丢失方向性。

示例:

以下文字与我复制的原始MSWord文本的反方向呈现(涉及乌尔都语文本):

  

图片粉丝<。

那么如何处理这样的bidi文本,以便在文本编辑器中像notepad ++一样正确呈现,因此可以用Python脚本忠实地处理?

1 个答案:

答案 0 :(得分:0)

首先,不要依赖于在Word文件中正确显示的bidi文本。在其他环境中,它不保证相同的文本会正确显示。 Microsoft Word在当前版本和旧版本中有自己的处理双向文本的方式,这不一定是符合Unicode的文本编辑器(如gedit)处理该文本的方式。这可能会或可能不会最终解决,因为Microsoft将在产品中实施newer version Unicode Bidirectional Algorithm

其次,您没有正确看到复制文本的原因是您的文本环境(包括此处)不能正确支持bidi文本,甚至不可能显示从右到左的文本。我在符合Unicode的文本编辑器中复制了您的示例字符串,并将方向更改为正确,这是正确的结果。

Sample right-to-left text in a Unicode-compliant editor

现在,为了能够使用Python处理Word文件中的文本,您需要进行一些即兴创作。您可以将文本内容导出为Unicode文本,然后使用Python进行处理。或者,如果您想要就地处理文本内容(在Word中),您可能可以从Python中获取一些令人满意的OLE组件脚本结果。请参阅相关问题here

相关问题