APNS 是不是理解 UTF-8 编码的有效负载

Posted

技术标签:

【中文标题】APNS 是不是理解 UTF-8 编码的有效负载【英文标题】:Does APNS understand UTF-8 encoded payloadAPNS 是否理解 UTF-8 编码的有效负载 【发布时间】:2017-08-05 01:01:07 【问题描述】:

我使用 Apns-Node.js 将推送通知发送到我的 ios 设备,使用 GCM-Node.js 发送我的 android 设备。

目前我有一个发送到 APNS 的有效负载,其中在有效负载中包含特殊字符,如“ü”。这将以相同的格式显示,并且不会因任何原因被 APNS 截断或修改。

但是我的 Android 应用程序存在这个问题,即 GCM 会截断负载中的特殊字符,除非它使用 URL 编码进行编码。

 "türken" -> gets truncated to "trken" unless it is encoded like "t%C3%BCrken" in GCM only

为了使两个平台保持统一,我可以将加密的有效负载也发送到 APNS 吗?如果我这样做,APNS 会理解 UTF-8 格式并将带有特殊字符的有效负载发送到设备吗?我的期望是 APNS 应该理解编码格式“t%C3%BCrken”并将“türken”发送到设备。这行得通吗?

【问题讨论】:

türken 是 UTF-8。 t%C3%BCrken 是URL encoded。你应该看到removingPercentEncoding 【参考方案1】:

根据您的解释,APNS 正确支持 UTF-8。这意味着它将按原样交付有效负载。

这意味着如果您发送“t%C3%BCrken”,那么客户端将收到“t%C3%BCrken”,但您的 iOS 客户端应用程序可以通过使用 removingPercentEncoding 轻松删除百分比编码。

【讨论】:

以上是关于APNS 是不是理解 UTF-8 编码的有效负载的主要内容,如果未能解决你的问题,请参考以下文章

APNS-SHARP 是在一个连接中发送多个有效负载的库吗?

PhoneGap PushPlugin - 访问 iOS APNS 有效负载?

在选择收到的推送通知时获取 APNS 有效负载内容 [关闭]

如何在 Push Sharp 库中的 APNS 有效负载中添加类别以进行交互式通知 ios

APNS 无效负载大小,仍然成功

GWT RPC 如何在其有效负载中编码 java.lang.Long 值?