英文:
Emoji does not display in push Notification instead it display question mark or display unicode
问题
表情符号在推送通知中显示为Unicode字符。例如:如果我们有类似于"\ud83d\ude0a"的文本。这是笑脸表情符号的代码,它会显示为Unicode字符,有时在推送通知中显示为问号。
在代码或服务器端是否还需要做其他操作?任何帮助都将不胜感激。我们在后端使用Java。
JSON示例:
{
"to": "c2rMPP0eK04Ro0FJDgMflH:APA91bEydhoB0VU5W6PxJLnIRoFqOk5npEjlWzBlvdyBlX1Cp72t0bYxDyepP5Z9mWFQ2XYeUPw8PDo3QqT6Anh27wqnkBRbabTYKn0tByOZOMU6oRlrGur-efxN9_-8LlOmDZceg9Kl",
"notification": {
"body": "Hello",
"title": "This is done manually. \uD83D\uDE0A"
}
}
我们尝试了以下方法:
byte[] emojis = user.getEmoji().getBytes();
String emojisAsString = new String(emojis, StandardCharsets.UTF_8);
Integer emojiCodePoint = emojisAsString.codePointAt(emojisAsString.offsetByCodePoints(0,0));
char emojiChars[] = {Character.highSurrogate(emojiCodePoint), Character.lowSurrogate(emojiCodePoint)};
注意:如果我们从Postman中执行这些操作,它可以工作,但从后端执行时却无法工作。
英文:
Emoji appears as a unicode characters in push notifications. i-e : if we have text like "\ud83d\ude0a". This is the code of SMILE EMOJI which displays as unicode characters or some time it display question mark in push notification.
Is there anything else need to do in code or on server side. ? Any help would be appreciated. we are using java at backend side
Json example :
{
"to": "c2rMPP0eK04Ro0FJDgMflH:APA91bEydhoB0VU5W6PxJLnIRoFqOk5npEjlWzBlvdyBlX1Cp72t0bYxDyepP5Z9mWFQ2XYeUPw8PDo3QqT6Anh27wqnkBRbabTYKn0tByOZOMU6oRlrGur-efxN9_-8LlOmDZceg9Kl",
"notification": {
"body": "Hello",
"title": "This is done manually. \uD83D\uDE0A"
}
}
We try this things
byte[] emojis = user.getEmoji().getBytes();
String emojisAsString = new String(emojis, StandardCharsets.UTF_8);
Integer emojiCodePoint = emojisAsString.codePointAt(emojisAsString.offsetByCodePoints(0,0));
char emojiChars[] = {Character.highSurrogate(emojiCodePoint), Character.lowSurrogate(emojiCodePoint)};
> Note : If we fire this things from postman then it is working but not
> working when it fire from backend
答案1
得分: 1
"\u{D83D}\u{DE0A}"
英文:
Try this string:
"\u{D83D}\u{DE0A}"
答案2
得分: 0
如果您正在从数据库中读取数据,请尝试更新您的数据库驱动程序。例如,如果您正在使用MySQL,请使用'mysql-connector-java:5.1.47'或更高版本。
英文:
If you are reading from DB, try updating your DB driver. Like if you are using MySQL, use 'mysql-connector-java:5.1.47' or higher.
答案3
得分: 0
"\uD83D\uDE0A" or "\u{D83D}\u{DE0A}" is not encoded emoji.
You should encode it like \u{1F600} \u{1F616}
:
"\u{1F600} \u{1F616}"
Refer link:
It works on playground. Check if it works on the notification panel.
英文:
"\uD83D\uDE0A" or "\u{D83D}\u{DE0A}" is not encoded emoji.
You should encoded like \u{
and }
:
"\u{1F600} \u{1F616}"
Refer link:
It works on playground. Check if it works on notification panel.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论