JSON из Twitter API содержит \ u2019 - PullRequest
4 голосов
/ 18 ноября 2010

Это часть моего JSON-файла, который я получаю через Twitter API:

"текст": "Ученые открывают новый метод изучения молекул: исследователи Queen обнаружили метод исследования ... http://bit.ly/chbweE"

Я использую PHP для своего проекта.

После использования функции json_decode, \ u2019 преобразуется в…, что, в принципе, действительно раздражает.

Я пытался использовать $raw_json = preg_replace("u2019","'",$raw_json), но затем функция json_decode возвращает NULL.

Есть ли другой способ конвертировать \ u2019 в '?

Спасибо


Edit:

Вот как я получаю JSON:

// create curl resource
    $ch = curl_init();

    // set url
    curl_setopt($ch, CURLOPT_URL, "http://search.twitter.com/search.json?q=from%3Agizmodo&rpp=10");

    //return the transfer as a string
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    // $output contains the output string
    $raw_json = curl_exec($ch);

    // close curl resource to free up system resources
    curl_close($ch);

Ответы [ 2 ]

6 голосов
/ 18 ноября 2010

Это, вероятно, проблема с кодировкой, которую вы используете в своих выходных данных.Если вы выводите на страницу HTML, попробуйте добавить следующий метатег в раздел head:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
0 голосов
/ 18 ноября 2010

Вам не хватает разделителей регулярных выражений /.../ в preg_replace.Попробуйте:

$raw_json = preg_replace("/u2019/","'",$raw_json);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...