Здесь, пожалуйста, пройдите приведенное ниже решение:
Проблема: Внутри TextView вместо Emoji отображается строка \ ue415 \ ue056 \ ue057 .
Основная причина: В Java или Android программно строковое представление Emoji вы получите как \\ ue415 \\ ue056 \\ ue057 . Но когда вы пытаетесь напечатать ту же строку в консоли или LogCat, escape-символ удаляется, и вы получите строку как \ ue415 \ ue056 \ ue057 , из-за которой первопричину этой проблемы невозможно обнаружить.
Решение: Чтобы решить эту проблему, нам нужно обработать escape-символ. Ниже я создал метод, который решает эту проблему.
public static String getEmojiFromString(String emojiString) {
if (!emojiString.contains("\\u")) {
return emojiString;
}
String emojiEncodedString = "";
int position = emojiString.indexOf("\\u");
while (position != -1) {
if (position != 0) {
emojiEncodedString += emojiString.substring(0, position);
}
String token = emojiString.substring(position + 2, position + 6);
emojiString = emojiString.substring(position + 6);
emojiEncodedString += (char) Integer.parseInt(token, 16);
position = emojiString.indexOf("\\u");
}
emojiEncodedString += emojiString;
return emojiEncodedString;
}