我编写了一些服务器代码来发送推送通知。我有一个表单字段,名为message。我需要的是,把一些Emoji字符的信息。
如果我将云字符写为\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')
}发布于 2013-06-17 04:52:35
你一直在说不同的话。你首先说:
如果我编写\ue48d,对于云字符,服务器会将其视为字符串‘\ue48d’。
现在你是说
我在消息字段中写入"\e415 Hello!"。
冒着指出显而易见的\ue48d != \e415
在JSON中,UTF8字符的编码方式类似于\u,然后字符代码(即\ue48d )是发送到JSON中的手机的有效字符。\e415不是,这就是为什么你的手机不会把它显示为表情符号。
那么,当你向手机发送'\ue48d'时,你的手机会看到什么呢?也就是说,当您向它发送正确编码的原始字符串时,它会看到什么。
编辑
如果当您从服务器发送一个正确编码的字符串时,它可以工作,那么您可能只需要对发送到服务器的消息进行解码,然后再将其发送回服务器。
message =JSON.parse(消息);
如果您的服务器接收到的消息只是一个字符串,那么就应该按原样工作。如果消息是一个数组或对象,那么您将需要选择适当的条目作为消息发送到电话。
https://stackoverflow.com/questions/17125043
复制相似问题