0

我正在使用Apns-Node.js将推送通知发送到我的iOS设备和GCM-Node.js以供我的Android设备使用。APNS是否理解UTF-8编码净荷

目前我有一个有效载荷发送到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”到设备。这会工作吗?

+0

türken是UTF-8。 t%C3%BCrken是[URL编码](https://www.urlencoder.org)。你应该看到[removedPercentEncoding](https://developer.apple.com/documentation/swift/string/1642934-removingpercentencoding) –

回答

1

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

这意味着如果你发送“T%C3%BCrken”,然后在客户端将收到“T%C3%BCrken”,但您的iOS客户端应用程序可以很容易地通过使用removingPercentEncoding删除百分号编码。