有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在iOS上解析时发送表情符号的推送通知

我试图让表情符号出现在parse发送的推送通知中,但我唯一能在通知中出现的是utf-8字符串(即,对于警官,我只看到“\ud83d\udc6e”)

当我在设备上收到信息并解码字符串时,表情符号就会回来并显示得很好

在我的服务器上,我使用Java,接收编码字符串,然后将数据转发到Parse。有效载荷如下所示:

"data":{"badge":"1","alert":"Crimson: \\ud83d\\udc6e\\ud83d\\ude21\\ud83d\\ude1a"

为了构建对parse的调用,我尝试用

data.put("alert", username + ": " + new String(message.getBytes(), "UTF-8"));

推送通知仅显示“\ud83d\udc6e\ud83d\ude21\ud83d\ud1a”

当我将文本字符串从iOS传递到服务器,然后返回到解析时,我只能假设我在编码/解码文本字符串方面做错了什么,但我一辈子都不知道我做错了什么

作为参考,以下是我在发送前用于编码的方法:

NSString *uniText = [NSString stringWithUTF8String:[msg UTF8String]];
NSData *msgData = [uniText dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *encodevalue = [[NSString alloc] initWithData:msgData encoding:NSUTF8StringEncoding] ;

以及在接收时用于解码:

NSData *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
NSString *decodevalue = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];

提前感谢您的帮助


共 (0) 个答案