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刪除百分號編碼。