我正在尝试发送包含特殊字符(如€,¢或$)的推送通知。但最终的信息似乎是:€=> Û。脚本在做什么:
$this->message = "Test special sign €";
$message = utf8_encode($this->message);
// Create the payload body
$body['aps'] = array(
'alert' => $message,
'badge' => '1',
'sound' => 'default'
);
$body['e'] = $this->event;
$body['i'] = $this->eventId;
$this->payload = json_encode($body);
var_dump($this->payload);
OUTPUT:var_dump($ this-> payload) string(118)“{”aps“:{”alert“:”Test special sign \ u00db“,”badge“:”1“,”sound“:”default“},”e“:”order“,”i“ “:” 12 “}”
打包邮件并发送。
$msg = chr(0) . pack('n', 32) . pack('H*', trim($RegisterIds[$key]['registerId'])) . pack('n', strlen($this->payload)) . $this->payload;
可以发送欧元符号吗?如果是这样......怎么样? (或者我做错了什么?)
答案 0 :(得分:0)
"所有文件都经过正确的UTF-8编码保存。"
然后您不需要/ 不得使用utf8_encode
。此函数将输入解释为ISO-8859-1编码,并将字节转换为其UTF-8等效值。你自己搞砸了你的绳子。