Получите символ юникода вместо эмодзи

#android #text #unicode #emoji #spannablestring

Вопрос:

В моем приложении мне нужно EditText с SpannableString . Когда я получаю специальный символ, например , для примера, символ преобразуется в соответствующий смайлик. Эта «проблема» существует не на всех устройствах, например, это происходит на Samsung, но не на Android AOSP

Как я могу «заставить» получить специальный символ, а не смайлик ?

РЕШЕНИЕ :

Я нашел это решение, чтобы получить правильный результат, но я не знаю, хорошо это или нет :

 
val specialChar = "✝︎"
val symbole = StringBuilder(specialChar).append(0xFE0E.toChar()).toString()
 

С помощью этого кода я получаю специальный символ вместо смайликов

Комментарии:

1. Проблема в шрифте и в настройках шрифта (шрифты, с настройками шрифтов/флагами, решает вопрос о заменах)

2. Ваше решение разумно. Когда эмодзи были впервые добавлены в Юникод, если в Юникоде уже был символ, который был черно-белым эквивалентом эмодзи, то данный эмодзи был объединен с этим символом. Позже было признано, что это был не лучший выбор, потому что это привело к проблемам, подобным тем, с которыми вы столкнулись. Чтобы определить, предназначено ли представление текста (символа) или эмодзи, были определены последовательности вариантов, чтобы указать желаемый внешний вид. Добавление U FE0E использует одну из этих последовательностей. См. unicode.org/reports/tr51/#Emoji_Variation_Sequences .