阿拉伯语/英语文本被洗牌

时间:2013-04-02 19:33:04

标签: asp.net textbox arabic

我遇到了一个奇怪的问题 我有一个文本框,我正在尝试阅读文本。但是当文本框包含阿拉伯语和英语文本时,似乎文本被洗牌。这就是我从文本框中读取文本的方式:

string temp = input.Text;

这是我在文本框中插入的文字:

  

باهم和englishمتنفارسی

这是我从文本框中获取的文字:

  

متنفارسیand englishباهم

3 个答案:

答案 0 :(得分:0)

阿拉伯语是一种从左到右的语言。英语是从左到右。所以这实际上是正确的 - 屏幕上的阿拉伯语将是相反的顺序(字符串位置0将在最右边)。

答案 1 :(得分:0)

这可能不是ASP.NET的问题,而是它输出的HTML。

检查浏览器中的HTML元素并检查计算样式中的“direction”属性。如果输入框的主要语言是阿拉伯语或波斯语,则应为“rtl”,如果是英语,则应为“ltr”。如果是另一种方式,则需要通过在HTML元素上使用适当的dir属性来调整它。

这仅针对用户界面进行调整。文本可能没有正确的方向保存到您的数据库中,但这可能没问题,因为数据库是内部的,通常用户看不到。

答案 2 :(得分:0)

在文本开头添加RLE字符。

const char RightToLeftEmbedding = (char)0x202B;