我写了一些服务器代码来发送推送通知。我有一个表单字段,称为消息。我需要的是,在信息中添加一些表情符号字符。
如果我写\ ue48d,对于云字符,服务器将其视为字符串'\ ue48d'。
如何解码它以便我可以在推送通知中使用它?
更新:这是我的服务器代码。我想将\ exxx写入表单的消息字段,并在此代码中对其进行编码,然后发送给Apple。
exports.create = function(req, res){
var devices = req.body.devices;
var message = req.body.message;
var note = new apn.Notification();
note.expiry = Math.floor(Date.now() / 1000) + 3600; // Expires 1 hour from now.
note.badge = 3;
note.sound = "ping.aiff";
note.alert = message;
note.payload = {'messageFrom': 'Burak'};
for (var i in devices) {
device = new apn.Device(devices[i]);
apnConnection.pushNotification(note, device);
}
res.send(200,'Successfull')
}
答案 0 :(得分:1)
你一直在说不同的事情。你先说:
如果我写 \ ue48d ,对于云端角色,服务器会将其视为字符串 的 '\ ue48d'。强>
现在你说
我将“\ e415 Hello!”写入消息字段。
冒着指出明显的\ue48d
!= \e415
JSON中的UTF8字符的编码方式与\ u一样,然后字符代码即\ue48d
是一个有效的字符,可以通过JSON发送到手机。 \e415
不是,这就是为什么您的手机没有将其显示为表情符号字符。
那么,当您向其发送'\ue48d'
时,您的手机会看到什么?即当你发送原始正确编码的字符串时它会看到什么。
修改
如果从服务器发送正确编码的字符串时它可以工作,那么你可能只需要解码发送到服务器的消息,然后再发回去,即
message = JSON.parse(message);
如果您的服务器收到的消息只是一个字符串,那么它应该按原样运行。如果消息是数组或对象,则您需要选择相应的条目作为消息发送到手机。