У меня есть текстовое поле, использующее pango. Если я помещаю строку, которая начинается со слова справа налево script, за которым следует пробел, за которым следует слово в левом-правом значении script, слово wrapping, которое использует pango, запутывается (используя PANGO_WRAP_WORD_CHAR
). Для строки العربية ENGLISH Я получаю следующее:
Если после пробела добавить символ unicode U+200F
, тогда я получаю ожидаемую перенос слов:
Кроме того, если я заменил арабский script выше на хинди (который слева направо, как и английский рядом с ним), я все равно получаю проблему, поэтому она не выглядит строго левым, справа, справа налево. В случае хинди я вложил взломанный текст, который вставляет 0x200E
после пробела, который разрешает проблему.
Это ошибка в pango? Есть ли какие-то проблемы, которые я могу попробовать, которые достаточно общие для решения проблемы, но не нарушают другие случаи? Текущая работа вокруг я использую вставки либо 0x200E
, либо 0x200F
после каждого пробела, основанного на направлении предыдущего строго направленного символа в строке, но я не уверен, есть ли там определенные строки, что это вызовет проблемы с.
Обновление: я смог воспроизвести эту проблему на Ubuntu 12.04 с помощью gedit (с помощью Enable Text Wrapping и Do not split words over two lines settings enabled). Я просто набирал Hello world
снова и снова, пока он не обернул несколько раз, а затем заменил все экземпляры world
на पहुंचगया
, и все свернулось в одну строку.