Apple 未收到带有外国口音字符的推送通知

2023-12-28

我正在发送推送通知,当消息包含外来字符(在我的例子中是土耳其语)时,如 ı、ş、ç、ğ...,该消息不会到达设备。

这是我的代码:

$message = 'THİS is push';
$passphrase = 'mypass';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'MyPemFile.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

// Open a connection to the APNS server
$fp = stream_socket_client(
    'ssl://gateway.push.apple.com:2195', $err,
    $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
    exit("Failed to connect: $err $errstr" . PHP_EOL);
echo 'Connected to Apple service. ' . PHP_EOL;

// Encode the payload as JSON
$body['aps'] = array(
    'alert' => $message,
    'sound' => 'default'
    );
$payload = json_encode($body);

$result = 'Start'.PHP_EOL;
$tokenArray = array('mytoken');
foreach ($tokenArray as $item)
{
// Build the binary notification
$msg = chr(0) . pack('n', 32) . pack('H*', $item) . pack('n', strlen($payload)) . $payload;
// Send it to the server
$result = fwrite($fp, $msg, strlen($msg));
if (!$result)
    echo 'Failed message'.PHP_EOL;
else
    echo 'Successful message'.PHP_EOL;
}

// Close the connection to the server
fclose($fp);

我尝试使用 utf8_encode() 编码 $message 变量,但收到的消息为“THÝS is Push”。像 iconv() 这样的其他方法对我不起作用,其中一些裁剪了土耳其字符,有些根本没有收到。

我也有

header('content-type: text/html; charset: utf-8');

and

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

在我的页面中。我认为在设置值时不会出现问题,但可能是使用 pack() 函数时出现的。

有什么想法可以解决这个问题而不用英语替换字符吗?


我所要做的就是用以下脚本替换土耳其字符:

function tr_to_utf($text) {   
    $text = trim($text);    
    $search = array('Ü','Ş','Ğ','Ç','İ','Ö','ü','ş','ğ','ç','ı','ö');  
    $replace = array('Ãœ','Å','&#286;','Ç','Ä°','Ö','ü','ÅŸ','ÄŸ','ç','ı','ö');
    $new_text = str_replace($search,$replace,$text);    
    return $new_text;  
}

现在它可以正常工作了。

这是来源 http://www.egonomik.com/2010/04/php-turkce-%C2%BB-utf-cevirici-script-ascii-to-utf-converter/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apple 未收到带有外国口音字符的推送通知 的相关文章

  • 使用 fgetcsv 循环遍历 csv

    我有一个包含 3 列的 csv 文件 电子邮件地址 名 and 姓 我已经到了可以使用以下代码打印数组的阶段 这会打印数组 因此每个字段都在一行中 我希望它打印的只是该行第一列中的值 这是如何完成的 关于 fgetcsv 的文档对我 相对初
  • PHPUnit RabbitMQ:为创建连接函数编写测试

    我面临以下问题 我编写了一个函数 根据所需参数创建连接对象 AMQPConnection 现在我想编写相应的单元测试 我只是不知道在没有运行 RabbitMQ 代理的情况下如何做到这一点 这是有问题的函数 public function g
  • iOS:调用 Objective-C 方法的处理开销是多少?

    我正在编写一些实时音频处理代码 该代码将在音频单元的渲染回调中执行 该线程处于系统识别的最高优先级 Apple 指示最大限度地减少此调用中进行的处理量 他们的建议之一是避免 Objective C 方法调用 But why 调用 Objec
  • Symfony2 功能测试会话持久性

    我正在尝试在 Symfony 中进行一些功能测试 但目前我的会话遇到了问题 我执行了一段代码 它似乎有效 但容器的会话中没有存储任何内容 我有一个表格 您可以在其中设置数据 当您提交它时 它会检查值并将其存储在会话中 然后它重定向到另一个页
  • 安装 Symfony 2.4.1 lib-icu 4.4 依赖项时出现问题

    我遇到了与以下相同的问题this one https stackoverflow com questions 16753105 problems with lib icu dependency when installing symfony
  • Zend 框架将字母“f”输出到我的页面上

    我已经下载了 Zend 框架稳定版本 我相信是 1 11 上传到我的服务器 并将其添加到我的 php 包含路径中 我的目标是使用 Feed 和 Feed Writer 模块来处理一些 RSS 和 Atom 的繁重工作 问题是 每当我包含 F
  • 从视频创建缩略图 - 提高速度性能 - AVAsset - iPhone [重复]

    这个问题在这里已经有答案了 我正在使用基于以下线程中的代码的代码来生成视频缩略图 从 iPhone SDK 中的视频 URL 或数据获取缩略图 https stackoverflow com questions 1347562 gettin
  • 混合数组和对象

    我有一个像这样的数组 Array count gt 2 0 gt stdClass Object term id gt 3109 name gt Aliens Colonial Marines slug gt aliens colonial
  • Codeigniter:重置表单值

    在我看来 我想要做的是在用户成功注册后清除表单字段 这里一切正常 即用户正在注册 成功消息正在向用户显示 除了我想要做的是清除表单字段的值 我正在使用这个 Clear the form validation field data so th
  • 为什么index.html优先于index.php?

    我在服务器上有一个网站 主页是 example com index php 好的 我将一个名为 index html 的文件上传到服务器 根目录 当我在浏览器的 URL 栏中输入站点的域时 我感到惊讶 因为 index html 页面已加载
  • Magento - 当我的订单取消或退款时如何运行代码

    如果订单被取消或退款 我的支付模块需要向支付服务发送通知 我假设订单页面 在管理后端 上的 取消 按钮将取消订单 而 贷项通知单 按钮 创建发票后 将退还订单 如何针对这些事件运行我的代码 我尝试在付款方式模型中使用 cancel 方法 但
  • TCPDF UTF-8 符号未显示

    我使用最新的 TCPDF 版本 5 9 但在编码方面遇到一些奇怪的问题 我需要立陶宛语语言符号 例如 但只能得到其中的一小部分 其他的还是这样 所以我该怎么做 我使用默认的 times 字体 它带有 TCPDF 下载 任何帮助 将不胜感激
  • PHP 中的 MongoDB - 如何将项目插入集合中的数组中?

    这必须很容易 但我似乎无法弄清楚 假设我有一个集合users这是集合中的第一项 id ObjectId 4d8653c027d02a6437bc89ca name Oscar Godson email email protected cdn
  • Laravel 集成测试:如何断言一个 URL 已被调用但另一个 URL 没有

    我想测试一个向某个 URL 发出请求的控制器 例如 http example com api say hello 但它不会向另一个 URL 发出请求 例如 http example com api say bye bye 我想测试的控制器功
  • 按通用值对值进行分组:userid 和 ipaddress

    我正在解决数据库中的一个问题 我正在尝试查找使用多个帐户的用户 我有一个用户 ID 和使用的 IP 地址的列表 如下所示 用户 ID IP 地址 1 IP 地址 13 2 IP 地址 23 1 IP 地址 12 4 IP地址56 9 IP
  • 为什么我不能在 TCPDF 表中使用 č,ć,đ 图表?

    我正在为我的网站构建一个 tcpdf 文件 该 tcpdf 文件中有一个包含一些数据的表格 但我无法使该章程正常工作 对于编码 我使用 windows 1250 宪章女巫不起作用 我已经尝试过 utf 8 但仍然没有得到这个章程 tcpdf
  • 如何建立辅助NSSortDescriptor排序键?

    我已成功按排序键对数据进行排序lastName 但我想知道如何排序lastName 然后由firstName 这是我用来排序的代码lastName NSSortDescriptor sortDescriptor NSSortDescript
  • 如何复制 ArrayIterator 以保留其当前迭代位置?

    因为这似乎是我必须做的才能达到这种效果 arr a gt first b gt second iter new ArrayIterator arr Do a bunch of iterations iter gt next new iter
  • 使用 php 获取当前月份的最后 3 个月

    我想获取当前月份最近 3 个月的名称 例如当前月份是八月 所以 我想要六月 七月 八月这样的数据 我已经尝试过这段代码echo date F strtotime 3 months 它只返回六月 如何使用 php 获取当前月份的最后 3 个月
  • iPhone 中的 NSNotification

    我正在将 NSSNotifcation 发送到 iPhone 应用程序中的另一个视图控制器 但它的观察者方法收到两次通知 这可能如何 任何人都可以指导我 我已经使用此代码来发布通知 NSNotificationCenter defaultC

随机推荐

  • 具有 kestrel 和反向代理的 Service Fabric https 端点

    我一直在尝试按照我能找到的微软文档和各种帖子 博客上的说明在无状态 API 端点上设置 Https 它在本地运行良好 但在将其部署到我的开发服务器上后 我正在努力使其工作 Browser HTTP ERROR 504 Vm event vi
  • 如何防止表格缩小到视口中

    我有以下代码 table border collapse collapse td padding 0px border 1px solid d3d3d3 width 300px height 100px text align center
  • Android导航组件清空堆栈

    我已导航至对话框片段 from 抽屉式导航连接到 NavController 但是 当我导航到已设置 popUpTo 和包含对话框片段的另一个目的地时 它不会清除堆栈 如何清除堆栈 AM 从 LogoutDialog 调用此方法 findN
  • 如何在 Android 中显示启动屏幕?

    我想在我的应用程序加载时显示启动屏幕 这是我的Java code ImageView splash ImageView this findViewById R id splashscreen splash postDelayed new R
  • Chrome - 注册表中的证书设置

    对于 Webdrivertest 我使用 Chrome 但始终会查询一个 SSL 证书 使用 Google Chrome 设置 无法处理它 所以我读到有一种关于注册表的方法 所以我尝试了各种组合 HKEY LOCAL MACHINE Sof
  • 如何将数据框中的每一列重新调整为 0-100 范围? (在 r 中)

    我试图让我的数据框的所有列都具有相同的比例 现在我有这样的东西 其中 a 处于 0 1 等级 b 处于 100 等级而 c 处于 1 5 等级 a b c 0 89 4 1 93 3 0 88 5 我怎样才能把它达到这样的100级 a b
  • 颤振设计曲线布局作为单个小部件

    Here https stackoverflow com questions 56820631 flutter design curves layout解决了有关设计此布局的问题 我在使用它时遇到问题 因为屏幕右侧的这条曲线不是小部件 当我
  • 错误“Junit 测试中没有公共 TestCase(String name) 或 TestCase()

    我是 junit test android 的初学者 我正在跟进本教程 http developer android com training activity testing activity basic testing html但得到这
  • 从 HTML5 文件 Api 加载的图像中检索 EXIF 图像元数据?

    我正在使用 HTML5文件 API 和文件读取器 http html5demos com file api HTML div div JS
  • 重复的 Apple APNS 推送通知?

    我们在应用程序上使用 APNS 一段时间以来没有发生太多事件 突然我们的用户报告多次收到相同的推送通知 我已经确认 乏味地 我们的服务器只向 Apple 发送一次通知有效负载 但通知会在横幅和通知中心生成 2 个 有时是 3 个 相同的警报
  • react-native-image-picker - 重建后的持久存储

    我已经在屏幕上敲击了一段时间了 尽管我在 git 或 stackoverflow 上找到了所有信息 但还是无法让它工作 我想要实现的目标 所选图像的持久性 来自库或相机 当我重建我的应用程序时 这意味着当我运行时也持久化react nati
  • IOS静态库产品一直是红色的

    我已经为此苦苦挣扎了几天 当我在 XCode 4 中的 IOS 下创建一个新的静态库项目时 我遇到了一个问题 无论是否添加文件作为标头或进行编译 我都能够成功构建 但 a 文件始终为红色 这种情况在调试和发布中都会发生 我读过类似的问题 但
  • Vue js 组合两个组件中的元素

    我正在尝试构建电子商务类型应用程序的结帐页面 在结账时 我有一个来自数据库的订单项目列表 每个订单项目都有价格 数量 您可以选择并组合这些 此外 我必须在其他地方呈现一个包含 插件 的列表到您的购物篮中 这也是 OrderItems 相同的
  • 如何在 Java 中实现抽象静态方法?

    关于无法包含静态抽象 Java 方法存在许多问题 还有很多关于此问题的解决方法 设计缺陷 设计强度 但我找不到任何针对我将很快说明的具体问题的信息 在我看来 创建 Java 的人以及相当多使用 Java 的人并不像我和其他许多人那样将静态方
  • Django DateTimeField() 和 timezone.now()

    好的 当我运行功能测试时出现奇怪的时区问题 Django 1 4 Python 2 7 MySQL 上的 DateTimeField 中的毫秒是否被截断 这是我唯一的理论 模型文件 from django db import models
  • 如何在android中使用opencv从另一帧中减去一帧

    我正在处理视频的帧 我想从其他帧中减去一帧以找出差异 但我不知道如何继续 我尝试将位图帧转换为垫子 然后减去它们 但它不起作用 我正在使用 opencv 2 4 3 作为 mat 函数 谁能告诉我该怎么做 如果可能的话用代码片段进行解释 我
  • 检查 PL/SQL 块中的表中是否存在行的正确方法

    昨天我在写一些任务 突然发现我真的不知道正确且被接受的方式当我使用 PL SQL 时检查表中是否存在行 例如 让我们使用表 PERSON ID Name 显然我can t do 除非有一些秘密方法 比如 BEGIN IF EXISTS SE
  • 将 pnputil 输出解析为特定类的已发布名称

    在 PowerShell 中 输入 pnputil exe e 后 我会得到如下驱动程序信息列表 我需要从列表中获取班级监视器的发布名称并将 oem8 inf 存储到 monitor name 我可以使用哪个命令来搜索class monit
  • gganimate 绘图未显示并保存一堆 .png

    我正在尝试复制一个简单的例子gganimate from here https gganimate com articles gganimate html 问题很简单ggplot部分工作正常 但是当我添加时transition states
  • Apple 未收到带有外国口音字符的推送通知

    我正在发送推送通知 当消息包含外来字符 在我的例子中是土耳其语 时 如 该消息不会到达设备 这是我的代码 message TH S is push passphrase mypass ctx stream context create st