带有 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 字符串比较失败

具有区域设置特定字符的数据库的 OleDbConnection/命令

PHP:如何在 mail() 中包含特殊字符?