为什么在记事本或Word中插入英文单词时,阿拉伯语/乌尔都语/波斯语文本中的单词会被打乱?

36

我可以在Microsoft Word或记事本上顺利地写阿拉伯语/乌尔都语/波斯语,但是每当我插入任何英文单词或数字时,顺序就会被打乱,看起来好像整个句子里的所有单词都被洗牌了。

看下面的例子:

یہ ایک مثال ہے اردو کی ...

现在我插入了一个英文单词,变成了:

 یہ ایک مثال ہےword  اردو کی ...

你可以看到几乎所有单词都被搅乱了... 那么有什么解决方法呢?

8个回答

23
例如:

在阿拉伯语中,“keyboard”我想知道这个词

  1. 输入阿拉伯单词并在其后添加空格(此空格将嵌入文本与其右侧的阿拉伯文本分开)。
  2. 插入特殊字符U+200F(以使前面的空格成为阿拉伯字符)。字符名称为“右至左标记”。
  3. 插入特殊字符U+202A(开始从左到右的嵌入)。字符名称为“从左到右的嵌入”。
  4. 插入另一个空格(以将嵌入文本与将继续向其左侧的阿拉伯文本分开)。
  5. 更改键盘,例如切换为英语,并输入从左到右的单词。
  6. 插入特殊字符U+202C(将双向状态恢复为从左到右的嵌入之前的状态)。字符名称为“弹出方向格式”。
  7. 将键盘切换回阿拉伯语并继续书写。

如果您使用Microsoft Office或Open Office,则可以在“插入”下找到“特殊字符”[插入->符号->其他符号->MS 2013中的特殊字符]。滚动查找具有适当Unicode编号的字符,如果您的MS Word版本中未出现Unicode编号,则按名称选择它[如上所示]。

您还可以通过编写其Unicode并选择它,然后按Alt + X将字符添加-但这可能会令人困惑,因为它需要不断在阿拉伯语和英语之间切换。

此小手法中涉及的所有特殊字符都是不可见字符(它们的工作仅是更改文本的方向),因此如果看起来像您没有插入任何内容,请不要感到惊讶。

请注意,在大多数段落为RTL时从选项卡中选择RTL选项,并保持其选中状态[如答案中所示的图片https://dev59.com/5Wkw5IYBdhLWcg3w1eC7#46050171 ]。


有趣。还有200E。我成功地混合了希伯来语和英语,只用了200E和200F,例如输入一个希伯来字母,光标就会停在左边,而不是我想要写一些英语的地方,所以我加入了一个200E(这是LTR),然后可以输入英语。但是,在任何希伯来字符之后,我认为我必须加入LTR(200E)才能获得它右侧的任何英语。 - barlop
在你的例子中,能否请添加Unicode字符并更新帖子。@Elliot - Adeel Ur Rehman

9

这是可以的;它们没有被洗牌:你在从左到右排版模式下看到了它们。

你只需要把它们改成从右到左。在记事本或Word中,按下右Ctrl+Shift键使它们的方向从右到左,就没问题了。(这就像在HTML中有<p dir="rtl">...</p>

控制字符 LRE 和 RLE(0x202A 和 0x202B)以及 LRM 和 RLM(0x200E 和 0x200F)需要应用于整个段落,即它们应该出现在序列的开头。一些平台的文本显示小部件可能会丢弃这些控制字符,尤其是旧的(2000年前)平台或不正确支持Unicode双向算法的平台。较新的操作系统和程序应该都没问题;例如可以尝试使用Windows记事本。

我个人建议使用平台的手段来使文本从右到左,避免使用特殊的控制字符,因为它们是看不见的,如果失控可能会导致意想不到的结果。所以最好使用Word的API使文本从右到左,或者如果你的输出是HTML,则将它们放在<div dir="rtl">...</div>标签中。对于纯文本文件,用户必须自己手动按下Ctrl+Shift键。


是的,我正在处理纯文本,按下“Ctrl+Shift”插入英文字母? - Arfeen
所有支持Unicode的应用程序都会尊重这些控制字符。您可以使用记事本进行测试:http://dotancohen.com/howto/rtl_right_to_left.html#TableOfNonprintingCharacters - VahidN
dir="rtl" 有所帮助。 - yogur

9
  1. 在输入阿拉伯语/波斯语之前,请确保已选择“从右到左方向”按钮。该按钮可以在段落选项卡中找到,位于AZ排序按钮的左侧。还要选择“将文本对齐右侧”按钮,该按钮可以在段落选项卡中找到,位于两端对齐按钮的左侧。

  2. 开始输入您的语言

  3. 在放置英语单词之前,请加一个空格,然后选择左ALT + SHIFT并键入您的英语单词

  4. 完成英语单词后,请选择右ALT + SHIFT,然后放置一个空格,再次输入您的语言

希望这有所帮助


PS:这是在Windows上。 - LolaRun
以上在Win10上的Word 2021并且带有希伯来语非常好用。谢谢! - Jonesome Reinstate Monica

7

编辑:这篇文章是对第一个答案的澄清,后来我编辑了第一个答案并添加了我在这里写的重要注释[尽管这个编辑仍然需要批准]。


我通过遵循这里第一个答案中的步骤成功修复了我的文本。 如果有人在按照这些步骤操作时遇到问题,请让我澄清一些事情:

如果您在阿拉伯文本中输入英语单词,请确保选择了功能区中的RTL选项[在以下图中用红圈圈出]:

screenshot

无论您使用哪种语言[只要段落的大部分是用RTL语言编写的,如阿拉伯语或希伯来语],都应该在整个段落中保持它被选中。

如何找到特殊字符并插入它们:

您可以编写字符的Unicode码,然后选择它并按“Alt + X”键。但是,由于需要在英语和阿拉伯语之间不断切换以编写代码,因此这可能有点令人困惑,因此最好通过插入它们的名称来“手动”输入它们。

您可以通过转到“插入” ->“符号” ->“更多符号” ->“特殊字符[向下滚动]”来执行此操作。然后选择您需要使用而不是其Unicode的字符的名称。

您将需要使用的字符的名称[如第一个答案中所指定的]为:

  • "从右到左标记":U+200F。
  • "从左到右嵌入":U+202A。
  • "弹出方向格式":U+202C。

如第一个答案所述,因为它是非打印字符,所以屏幕上不会显示任何内容,因此如果您插入时感觉什么也没发生,那就很正常。

如果您需要反过来做,也就是在英语文本中插入希伯来语或阿拉伯语单词,只需颠倒使用Unicode的方式-- 或按照以下链接中的步骤操作:https://superuser.com/a/1247476/767967

如果您想了解有关特殊字符的详细信息以及使段落LTR或RTL的含义,请访问以下链接:http://dotancohen.com/howto/rtl_right_to_left.html#Directionality


5

选择段落(例如,使用三次点击)并在“开始”窗格的“段落”部分中使用从右到左方向按钮(¶◀)。

正如Hossein的回答所解释的那样,问题在于段落的方向性。当您插入拉丁字母时,它会更改为从左到右,并且需要手动修复。


这是最好的、最简单的解决方案。不需要添加Unicode或特殊字符。 - TheTechGuy

3
你需要在行首添加一个不可见的RLE Unicode字符 [^]。 它是:0x202B十六进制= 8235 十进制或RIGHT-TO-LEFT EMBEDDING(RLE)。 这对于Notepad来说是必要的,但MS-Word能够处理它。你需要正确地将文本右对齐。
如何输入RLE:http://www.fileformat.info/tip/microsoft/enter_unicode.htm

1
我尝试使用两个网站提供的方法在记事本中插入该字符,但仍然是同样的情况。 - Arfeen
更多信息请参见:http://dotancohen.com/howto/rtl_right_to_left.html + 该页面末尾有RLE字符。按选择按钮,然后按Ctrl+C进行复制。现在将其粘贴到记事本中,并开始编写LTR和RTL部分,无需担心问题。 - VahidN
这里展示了第二种添加RLE字符的方法:http://www.microsoft.com/middleeast/msdn/control.aspx#Samples - VahidN

1
在文字处理中,你有一个主要的文本方向,可以是从左到右或从右到左(或从上到下,但让我们忽略它:-),并且你有单个字符的文本方向,这也将是从左到右或从右到左。
文字处理器将文本分成具有相同字符顺序的字符串块,然后根据主要的文本顺序显示这些块。
看起来你的主要文本顺序是从左到右。只要你的所有文本都是阿拉伯文,就只有一个带有阿拉伯文本的块。你已经看到它被显示为左对齐而不是右对齐,因为文本顺序是从左到右。字符以从右到左的方式显示,因为这是阿拉伯文的显示方式。
当你插入拉丁文时,你有三个块:阿拉伯文、拉丁文、阿拉伯文。这三个块按照主要的文本顺序从左到右显示。对于大部分是拉丁文的文本(比如“狗和牛的阿拉伯语是...和...”),这样做是可以的。对于大部分是阿拉伯文且偶尔包含拉丁文单词的文本,你需要将主要文本顺序更改为“从右到左”。

-1

只需按照以下步骤:

  • 将阿拉伯文本从Word或文本文档复制并粘贴到ADOBE Illustrator中。
  • 将Illustrator文档保存为.EPS格式。
  • 打开indesign并将.EPS文档放置在所需位置。

由于indesign无法自行处理阿拉伯文本问题,因此此方法将帮助许多设计师。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接