阿拉伯语/英语文本被打乱



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

string temp = input.Text;

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

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

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

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

在文本开头添加RLE字符。

const char RightToLeftEmbedding = (char)0x202B;

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

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

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

这只针对用户界面进行调整。文本可能以不正确的方向保存到数据库中,但这可能很好,因为数据库是内部的,通常不会被用户看到。

最新更新