Skip to main content
 首页 » 编程设计

javascript之ASP.NET 阿拉伯语文本之句号错误地出现在句首

2024年05月10日35birdshome

我有一个 ASP.NET v4 表单,其中包含一个 textarea 元素,其中 dir 字段设置为 auto:

<form runat="server"> 
    <textarea id="mytext" name="mytext" dir="auto" style="width: 400px; height: 300px; margin: 10px;"></textarea> 
    <input type="submit" value="Submit">  
</form> 

将我的 Windows 操作系统的语言设置为阿拉伯语后,在文本框中输入阿拉伯语文本时,文本的方向是预期的从右到左。此外,在提交表单并检查代码隐藏中的 Request.Form["mytext"] 时,除了最后一句话末尾的句号字符(即在最左边)已经移动到第一句的开头(即在最右边)。

例如(不使用真正的阿拉伯语单词,因为我不懂该语言):
之前 在 بثبصبصببو.بثبثبثبصيص.ثاثقاثلثبain 之后。

知道为什么会发生这种情况以及我可以做些什么来防止它发生吗?

请您参考如下方法:

如果我正确理解你的问题并且你担心文本的顺序不正确,你应该知道当你在 rtl 文本框中输入文本并正确看到它时,文本的顺序是正确的

在调试器中,您最初只能看到 .,因为在调试器中,文本框是从左到右排列的。保存收到的文本就足够了,然后在显示时,将文本显示在具有从右到左样式的文本框中。

要正确输入 سلام علیکم.,请按顺序输入,首先是 س,然后是 ل,然后是 ا,. .. 最后 . :

▽ ä ا ms 空间 ù ä ˊ ms .

它会在带有 dir="rtl" 或 dir="auto" 的文本框中正确显示,如下例所示:

<html> 
<head><title>auto-rtl-ltr</title></head> 
<body> 
  <input type="text" dir="auto" value="سلام علیکم."/> 
  <input type="text" dir="rtl" value="سلام علیکم."/> 
  <input type="text" dir="ltr" value="سلام علیکم."/> 
</body> 
</html>

另外,作为测试,您可以在记事本或文本框中粘贴 سلام علیکم. 并使用左键 (Ctrl+Shift) 和右键 ( Ctrl+Shift) 在ltr和rtl之间切换并查看结果。