我遇到了一个奇怪的问题 我有一个文本框,我正在尝试阅读文本。但是当文本框包含阿拉伯语和英语文本时,似乎文本被洗牌。这就是我从文本框中读取文本的方式:
string temp = input.Text;
这是我在文本框中插入的文字:
باهم和englishمتنفارسی
这是我从文本框中获取的文字:
متنفارسیand englishباهم
答案 0 :(得分:0)
阿拉伯语是一种从左到右的语言。英语是从左到右。所以这实际上是正确的 - 屏幕上的阿拉伯语将是相反的顺序(字符串位置0将在最右边)。
答案 1 :(得分:0)
这可能不是ASP.NET的问题,而是它输出的HTML。
检查浏览器中的HTML元素并检查计算样式中的“direction”属性。如果输入框的主要语言是阿拉伯语或波斯语,则应为“rtl”,如果是英语,则应为“ltr”。如果是另一种方式,则需要通过在HTML元素上使用适当的dir属性来调整它。
这仅针对用户界面进行调整。文本可能没有正确的方向保存到您的数据库中,但这可能没问题,因为数据库是内部的,通常用户看不到。
答案 2 :(得分:0)
在文本开头添加RLE字符。
const char RightToLeftEmbedding = (char)0x202B;