【发布时间】:2020-12-04 04:35:25
【问题描述】:
表情符号在推送通知中显示为 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)};
注意:如果我们从邮递员那里解雇这个东西,那么它可以工作但不是 从后端触发时工作
【问题讨论】:
-
您能否向某些 http 端点(如 mockbin.org)发送请求以找出差异?喜欢
curl -X POST mockbin.org/request -H 'Content-type: application/json' -d '{"emoji":"\uD83D\uDE0A"}'。由您的后端和邮递员发送请求。 -
您用户的表情符号存储在哪里?
user.getEmoji()是什么类型的对象,您的数据库是否试图翻译和存储表情符号。您需要提供代码中的更多信息以及数据库的结构以获得准确的答案。
标签: java push-notification apple-push-notifications