带有 Easy APN 的丹麦语字符
Posted
技术标签:
【中文标题】带有 Easy APN 的丹麦语字符【英文标题】:Danish characters with Easy APNs 【发布时间】:2011-03-22 15:58:34 【问题描述】:我正在尝试使用Easy APNs 在警报通知中发送丹麦语字符(Æ、Ø、Å),但这样做时,不会发送任何消息。如果我用声音发送它,则只发送声音。此外,如果该消息包含任何丹麦字符,则该消息将在数据库中设置为“null”。
有人知道解决这个问题的方法吗?
【问题讨论】:
【参考方案1】:这是由json_encode()
引起的。在json_encode()
解决问题之前,在我的警报视图中使用utf8_encode()
。
更新(如何解决问题)
1.在class_APNS.php
411 行附近,您有
$msg = chr(0).pack("n",32).pack('H*',$token).pack("n",strlen($message)).$message;
在此之上,放:
$message = utf8_encode($message);
2. 在class_APNS.php
(同一文件)中输入:
$usermessage['aps']['alert'] = utf8_encode($usermessage['aps']['alert']);
把它放在下面:
$fk_device = $this->db->prepare($list[$i]);
$message = $this->_jsonEncode($usermessage);
$message = $this->db->prepare($message);
$delivery = (!empty($when)) ? "'$when'":'NOW()';
【讨论】:
能否请您解释一下您是如何修复它的。您在哪里将其确切更改为 utf-8 以及在哪个类中!谢谢。 @Juono 我已经更新了我的答案来解释如何解决这个问题。 感谢回答我的问题,但class_APNS.php
中不存在此代码(如下),或者至少我找不到它:if(!$usermessage['aps']['alert']) $usermessage['aps']['alert'] = NULL; else echo $usermessage['aps']['alert'];
对不起。我认为这是我的另一个修补程序。试试您是否可以在我的答案中找到新代码。我刚刚更新了它。以上是关于带有 Easy APN 的丹麦语字符的主要内容,如果未能解决你的问题,请参考以下文章
通过 JDBC-ODBC 驱动程序从 Access 中选择时不显示丹麦语字符 [重复]
使用 std::wifstream 读取带有特殊字符的 unicode 文件
将 Openquery 中的丹麦字符 (Æ Ø Å) 保留到链接服务器
比较 unicode 字符时,Javascript 字符串比较失败