Asp.net 阿拉伯文/英文文本正在洗牌

Asp.net 阿拉伯文/英文文本正在洗牌,asp.net,textbox,arabic,Asp.net,Textbox,Arabic,我遇到了一个奇怪的问题 我有一个文本框,我正在尝试阅读文本。但是,当文本框同时包含阿拉伯语和英语文本时,文本似乎被混洗了。这是我从文本框中读取文本的方式: string temp = input.Text; 这是我正在文本框中插入的文本: string temp = input.Text; 英语和英语 这是我从文本框中得到的文本: 英语和英语 阿拉伯语是一种从右向左的语言。英语是从左到右的。因此,这实际上是正确的-屏幕上的阿拉伯语顺序相反(字符串位置0将位于最右侧)。ASP.NET可能没有问

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

string temp = input.Text;
这是我正在文本框中插入的文本:

string temp = input.Text;
英语和英语

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

英语和英语


阿拉伯语是一种从右向左的语言。英语是从左到右的。因此,这实际上是正确的-屏幕上的阿拉伯语顺序相反(字符串位置0将位于最右侧)。

ASP.NET可能没有问题,但它输出的HTML有问题

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


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

在文本开头添加RLE char

const char RightToLeftEmbedding = (char)0x202B;

你在哪里看到混乱的文本?它取决于嵌入的bidi控件字符。