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 有效负载内容 [关闭]