当阿拉伯语和英语单词在同一个字符串中时,单词会随机播放

时间:2014-07-14 08:18:52

标签: asp.net unicode culture

当英语和阿拉伯语单词放在一个字符串中时,单词倾向于随机播放,因为阿拉伯语有RTL方向,而英语有LTR。

我正在尝试发送电子邮件,以下是我的电子邮件的主题

String subText = "Financial Details of  شركة اختبار were sent";

电子邮件主题显示为

  

发送了شركةمصنعالجواربالراقيه。 المحدوده金融   

的详细信息

在检查了一些其他resource后,我决定在开头添加不可见的RLE字符,据说可以停止这样的随机播放,但仍然会得到相同的洗牌版本。

char RightToLeftEmbedding = (char)0x202B;
subText = RightToLeftEmbedding + subText ;

这种方法有什么问题?

1 个答案:

答案 0 :(得分:1)

似乎由呈现电子邮件主题的软件应用的整体书写方向是从右到左,可能是因为它是专门设计或配置为使用从右到左的语言,如阿拉伯语。结果并没有真正改组,而是正常的从右到左渲染,其中一系列具有从左到右方向性的角色以该方向性呈现。

使用U + 202B RIGHT-TO-LEFT EMBEDDING没有帮助,因为它只是明确要求从右到左方向,无论如何都要使用它。相反,使用U + 202A LEFT-TO-RIGHT EMBEDDING。