包含阿拉伯和西方字符的字符串串联

| 我正在尝试连接包含阿拉伯语和西方字符的多个字符串(混合在同一字符串中)。问题在于结果是一个字符串,该字符串很可能在语义上是正确的,但是与我想要获得的字符串不同,因为字符的顺序由Unicode双向算法更改。基本上,我只是想将它们全部串联为LTR,而忽略了其中一些是RTL(一种“不可知的”串联)这一事实。 我不确定我的解释是否明确,但我认为我不能做得更好。 希望可以有人帮帮我。 亲切的问候, 卡洛斯·费雷拉 顺便说一句,字符串是从数据库中获取的。 编辑 前两个字符串是我要连接的字符串,第三个是结果。 编辑2 实际上,串联的String与图片中的String稍有不同,它在复制和粘贴过程中发生了变化,1在第一个A之后而不是第二个A之前。     
已邀请:
        您可以使用unicode格式控制代码点嵌入比迪烟区域: 左右嵌入(U + 202A) 从右向左嵌入(U + 202B) 弹出式定向格式(U + 202C) 因此,在Java中,要将像阿拉伯语这样的RTL语言嵌入到像英语这样的LTR语言中,
myEnglishString + \"\\u202B\" + myArabicString + \"\\u202C\" + moreEnglish
并做相反的事情
myArabicString + \"\\u202A\" + myEnglishString + \"\\u202C\" + moreArabic
有关更多详细信息,请参见“双向通用格式设置”,或者,在\“ Directional Formatting Codes \”上的Unicode规范章节中获取源材料。     
        您很有可能需要在字符串中插入Unicode定向格式代码,才能正确显示字符串。有关详细信息,请参见Unicode双向算法规范的定向格式代码。 也许Bidi类可以实现Unicode双向算法,因此可以帮助您确定正确的顺序。     
        它并没有改变代码点的顺序。发生的事情是,当显示字符串时,它会看到字符串以从右至左的脚本开头,因此它是从右至左显示的。     

要回复问题请先登录注册