表情符号不会显示在推送通知中,而是显示问号或Unicode

时间:2020-08-14 09:31:33

标签: java push-notification apple-push-notifications

表情符号在推送通知中显示为Unicode字符。即:如果我们有类似“ \ ud83d \ ude0a”的文字。这是SMILE EMOJI的代码,它显示为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)};

注意:如果我们从邮递员处开除此物品,则说明该物品正在工作,但没有 从后端启动时可以正常工作

3 个答案:

答案 0 :(得分:1)

尝试此字符串:

"\u{D83D}\u{DE0A}"

答案 1 :(得分:0)

如果您正在读取数据库,请尝试更新数据库驱动程序。就像使用MySQL一样,请使用'mysql-connector-java:5.1.47'或更高版本。

答案 2 :(得分:0)

“ \ uD83D \ uDE0A”或“ \ u {D83D} \ u {DE0A}”未编码为表情符号。

您应该使用\u{}进行编码:

"\u{1F600} \u{1F616}"

引用链接:

Emoji unicodes

Unicode in iOS

它在操场上工作。检查它是否在通知面板上起作用。

相关问题