Некоторые символы Unicode непреднамеренно преобразуются в флаг Emoji в Android TextView - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь показать текст в своем приложении для Android, используя специальные символы Юникода (выглядят как буквы).

Один символ всегда соответствует буксируемому юникоду: Первым всегда является «\ uD83C» (55356), за которым следует «\ uDDF9» (56825) для «А», например (56826 для «В» и т. Д.). Настройка текста в целом работает нормально, но всякий раз, когда текст содержит подстроку, которая соответствует кодировке страны (например, «ES» для Испании), он не показывает два символа, а вместо этого флаг.

Я уже пытался понять это поведение и искал возможности обратиться, я не нашел никаких решений

Пример:

Я хочу показать эти символы: ????

Строковое значение как массив символов:

Результат в моем TextView:

Можете ли вы помочь мне найти способ отключить это поведение? Я уже видел, как это работает в других приложениях.

1 Ответ

0 голосов
/ 10 января 2019

Персонажи, которые вы используете, существуют только для создания флага эмодзи; они не служат никакой другой цели и не предназначены для использования в «причудливом» тексте. Отображение флагов для допустимых кодов регионов является их единственным правильным поведением.

Если вам абсолютно необходимо использовать их без этого, вам нужно вставить невидимые символы между каждой буквой, чтобы разбить лигатуры, например U + 200C (Zero Width Non-Joiner) или U + 2060 (Word Joiner).

...