我正在通过Unicode将阿拉伯语文本输入到Richtextbox中,看起来一切正常。下面的数字应该是左边的示例文本和右边的数字。盒子是确切的大小,所以我不担心屏幕的右侧或左侧。图像和Unicode位于
之下FE9E FE98 FEB8 FEC6 FEEB 0020 0660 0662 0664 0668
然后我尝试将其复制到另一个richtext框并且文本翻转并更改第一个和最后一个不是我想要的字符,数字再次移动到文本的左边而不是我想要的。我想复制字节为字节。
我找到了关于左右标记的内容并尝试了但仍无法正常工作
rchtxbx_bottom.SelectionFont = new System.Drawing.Font("San Serif", 20);
rchtxbx_bottom.AppendText("Copied string = " + rchtxbx_top.Text + "\r");
rchtxbx_bottom.SelectionFont = new System.Drawing.Font("San Serif", 20);
rchtxbx_bottom.AppendText("Right to Left Mark = \u200F" + rchtxbx_top.Text + "\u202C\r");
rchtxbx_bottom.SelectionFont = new System.Drawing.Font("San Serif", 20);
rchtxbx_bottom.AppendText("Left to Right Mark = \u200E" + rchtxbx_top.Text + "\u202C\r");
rchtxbx_bottom.SelectionFont = new System.Drawing.Font("San Serif", 20);
rchtxbx_bottom.AppendText("ForceLTR string = " + ForceLTR(rchtxbx_top.Text) + "\r");
关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
我最终通过创建一个检查Unicode中每个Char的函数来解决问题。如果是来自页面FE,那么我在它之后添加\ u202C,如下所示。
string us = string.Format("\uFE9E\u202C\uFE98\u202C\uFEB8\u202C\uFEC6\u202C\uFEEB\u202C\u0020\u0660\u0662\u0664\u0668 Aa1");