java разница в String из бд и из исходного кода

Пытаюсь отправлять смайлы в телеграм бот. коды смайлов в бд, но вместо смайлов в сообщении приходит текст кода этого смайла а не сам эмоджи. однако, если ввести тот же код смайла в исходный код программы через String = "\ud83c\udf4f"; то все окей. Кроме того, сравнение одинакового кода в бд и тексте программы тоже не выполняется, то еть:

if(prodtype[2].equals("\ud83c\udf4f")) {
        emm = "\ud83c\udf4f";
    }

код выше не выполяется, хотя в бд и программе одинаковые полностью символы. В чем загвоздка?


Ответы (1 шт):

Автор решения: Nick

В базе нужно хранить не \ud83c\udf4f, а ?.

То что в коде записано как String s = "\ud83c\udf4f" преобразуется компилятором в String s = "?";

PS: преобразовать можно прямо в IntelliJ IDEA поставив курсор на строку, нажав Alt+Enter и выбрав в меню Replace unicode... или онлайн конвертером

→ Ссылка