Я пытаюсь объединить несколько строк, содержащих арабские и западные символы (смешанные в одной строке). Проблема в том, что результатом является строка, которая, скорее всего, семантически верна, но отличается от того, что я хочу получить, потому что порядок символов изменяется двунаправленным алгоритмом Unicode. По сути, я просто хочу объединить, как если бы все они были LTR, игнорируя тот факт, что некоторые из них являются RTL, своего рода «агностической» конкатенацией.
Я не уверен, был ли я ясен в своем объяснении, но я не Не думаю, что смогу сделать это лучше.
Надеюсь, кто-нибудь может мне помочь.
С уважением,
Карлос Феррейра
Кстати, строки получаются из базы данных.
EDIT
Первые 2 строки - это строки, которые я хочу объединить, а третья - результат.
EDIT 2
На самом деле объединенная строка немного отличается от строки на изображении, она была изменена во время копирования + вставки, 1 находится после первого A, а не непосредственно перед вторым A.
Весьма вероятно, что вам нужно вставить коды направленного форматирования Unicode в вашу строку, чтобы правильно отобразить строку. Подробнее см. Коды направленного форматирования спецификации двунаправленного алгоритма Unicode.
Может быть, класс Bidi может помочь вам в определении правильной последовательности, поскольку он реализует двунаправленный алгоритм Unicode.