如何发送包含特殊字符(如ä,ö,ü)的Firebase云消息通知?

3

我曾经试图发送一个带有特殊字符(如下)的 FCM 通知:

curl --header "Authorization: key=Auth-CODE" 
--header Content-Type:"application/json 
for JSON; application/x-www-form-urlencoded;charset=UTF-8" 
-d '{"to":"token","notification":{"title":"München",
"body":"Test Content with äöü",
"icon":"images/icon-192x192.png"}}' 
https://fcm.googleapis.com/fcm/send 

我会收到如下通知:

Mnchen
Test Content with

请问有人能指引我正确的方向吗? 非常感谢!

编辑

客户端是一个浏览器,因为该应用程序是一个web应用程序。


你看过这些帖子吗:https://dev59.com/4WnWa4cB1Zd3GeqPxSO4,https://dev59.com/HWbWa4cB1Zd3GeqPTyhC? - AL.
1
是的,我也尝试过这个方法... 首先对字符串进行urlencode编码,最后对接收到的字符串进行url_decode解码... 这总是显示M%C3%BCnchen - MPe
你是否正在使用Android作为客户端应用程序? - AL.
1
尝试使用Base64进行编码/解码。 - Lạng Hoàng
1
@AL。客户端是浏览器,因为应用程序是Web应用程序。(抱歉,我错过了这个信息!) - MPe
@LạngHoàng 非常感谢!看起来更改需要一些时间才能生效! - MPe
2个回答

1

根据 @LangHoang 的建议,我试着使用Base64编码和解码来获取特殊字符的支持!

<?php 
base64_encode ($string);

并在JavaScript中解码响应(firebase-messaging-sw.js)

body:b64DecodeUnicode(payload.notification.body)

现在一切都非常正常!


1
使用 application/json;charset=UTF-8 应该可以解决问题。我曾经遇到过同样的问题,将 charset=UTF-8 添加到 Content-Type 中可以解决它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接