2

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

string temp = input.Text;

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

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

这是我从文本框中得到的文本:

متن فارسی 和英语 باهم

4

3 回答 3

0

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

于 2013-04-02T19:36:06.133 回答
0

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

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

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

于 2013-04-03T08:13:08.580 回答
0

在文本开头添加 RLE 字符。

const char RightToLeftEmbedding = (char)0x202B;
于 2013-04-03T08:23:53.963 回答