Как правильно построить строку с символами Юникода для использования с pyapns? - PullRequest
2 голосов
/ 17 января 2012

Я использую сервер pyapns для отправки push-сообщений Iphone.Я подключаюсь к серверу pyapns с помощью PHP.

Когда я отправляю сообщение с символами Юникода, такими как {\"data\":\"\u094d\"}, я получаю следующее сообщение об ошибке:

8002 Причина: 'Может't десериализовать ввод: не правильно сформирован (неверный токен): строка X, столбец Y '

Если я изменю данные на {\"data\":\"ABC\"}, все будет работать нормально.

Я используюxmlrpc для кодирования строк с использованием php_xmlrpc_encode.

Кто-нибудь знает, как мне отформатировать символы Юникода, чтобы это работало?

Ответы [ 3 ]

0 голосов
/ 18 декабря 2013

Вот как я пытаюсь составить сообщение и отправить его на сервер pyAPNS.

Спасибо

$echoString = new xmlrpcmsg ( 'notify', array(
                            php_xmlrpc_encode($APNS_APP_ID),      //app_id
                            php_xmlrpc_encode($deviceToken),     //device_tocke
                            php_xmlrpc_encode(array("aps" => array(
                                                'alert' => "働 どう dō, はたら(く)", 
                                                'sound' => 'newMsg.wav',
                                                'badge' => 1,
                                                'feedid' => $target_nick,
                                                'fromid' => $target_nick
                                             )))
                            )     );
0 голосов
/ 12 июля 2014

Я решил эту проблему, установив внутреннюю кодировку xmlrpc в utf8:

$GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';

Я считаю, что по умолчанию используется ISO-8859-1. Я безуспешно пытался отправить милые маленькие смайлики на мой сервер pyapns, но это помогло.

0 голосов
/ 18 декабря 2013

Вам необходимо добавить второй обратный слеш к этому символу юникода:

{\"data\":\"\\u094d\"}

Интерпретатор PHP не распознает команду \ u, но ваш JSON-анализатор будет (или должен это делать в соответствии со спецификацией JSON).

...