В возвращенном результате JSON — данные не выглядят так, как будто

Я получил некоторые данные из URL-запроса, используя JSON со следующим кодом:

$url = 'https://recruit.zoho.com/ats/private/xml/JobOpenings/getRecords?authtoken=$at&scope=recruitapi';
$request = new WP_Http;
$result = $request->request($url, $data = array());
$input = json_encode($result, true);
var_dump($input);

Этот код работал абсолютно нормально, за исключением того, что выходящие данные выглядели очень странно, например:

"content-encoding":"gzip","vary":"Accept-Encoding","strict-transport-security":"max-age=15768000"},"body":"\u003C?xml version=\"1.0\" encoding=\"UTF-8\" ?\u003E\n\u003Cresponse uri=\"\/ats\/private\/xml\/JobOpenings\/getRecords\"\u003E\u003Cresult\u003E\u003CJobOpenings\u003E\u003Crow no=\"1\"\u003E\u003CFL val=\"JOBOPENINGID\"\u003E\u003C![CDATA[213748000001263043]]\u003E\u003C\/FL\u003E\u003CFL val=\"Published in website\"\u003E\u003C![CDATA[false]]\u003E\u003C\/FL\u003E\u003CFL val=\"Modified by\"\u003E\u003C![CDATA

После некоторого исследования я понимаю, что часть проблемы, скорее всего, заключается в том, что в данных, которые я запрашиваю, присутствуют æ, ø и å. Другие решили проблему следующим образом:

$input = json_encode(utf8_decode($result), true);

Однако это дает мне эту ошибку:

Warning: utf8_decode() expects parameter 1 to be string, array given in

Я знаю, что массив не является строкой, но как еще я справлюсь с этим? Кажется, это сработало для других, и я не могу понять, почему.

Благодарю.

Редактировать:

Я заметил это в начале печатных данных.

string(31486) "{"headers":{"server":"ZGS","date":"Wed, 12 Aug 2015 13:59:32 GMT","content-type":"text\/xml;charset=utf-8"

Означает ли это, что это уже UTF-8, и я полностью выключен?

0

Решение

Что вы получаете в $result является строкой utf-8, которая, кажется, представляет какой-то URL Во всяком случае, json_encode избежит любого символа Юникода \u008E строки.

Если вы не хотите экранировать символ utf-8, этот вопрос вам подходит: Почему функция PHP json_encode преобразует строки UTF-8 в шестнадцатеричные объекты?

Кажется, все работает нормально из того, что я вижу. Хотя строка, которую вы нам предоставили, кажется, прервана, но я думаю, что это ошибка с вашей стороны.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]