Car*_*ira 27 java string arabic internationalization
我正在尝试连接几个包含阿拉伯语和西方字符的字符串(混合在同一个字符串中).问题是结果是一个字符串,它很可能在语义上正确,但与我想要获得的字符串不同,因为Unicode双向算法改变了字符的顺序.基本上,我只是想连接好像它们都是LTR,忽略了一些事实,即RTL,一种"不可知"的连接.
我不确定我的解释是否清楚,但我认为我不能做得更好.
希望可以有人帮帮我.
亲切的问候,
卡洛斯费雷拉
顺便说一下,字符串是从数据库中获得的.
编辑

前两个字符串是我要连接的字符串,第三个是结果.
编辑2
实际上,连接的字符串与图像中的字符串略有不同,它在复制+粘贴期间被改变,1在第一个A之后而不是在第二个A之前.
Mik*_*uel 45
您可以使用unicode格式控制代码点嵌入bidi区域:
所以在java中,要像英语这样的LTR语言嵌入像阿拉伯语这样的RTL语言,你会这样做
myEnglishString + "\u202B" + myArabicString + "\u202C" + moreEnglish
Run Code Online (Sandbox Code Playgroud)
并做相反的事情
myArabicString + "\u202A" + myEnglishString + "\u202C" + moreArabic
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅双向常规格式 ;有关源材料的"方向格式代码",请参阅Unicode规范章节.